backup.
This commit is contained in:
18
lib/store/actions.dart
Normal file
18
lib/store/actions.dart
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_wisetronic/models/user.dart';
|
||||
|
||||
class UpdateContext {
|
||||
final BuildContext context;
|
||||
UpdateContext(this.context);
|
||||
}
|
||||
|
||||
class UpdateLocale {
|
||||
final Locale locale;
|
||||
UpdateLocale(this.locale);
|
||||
}
|
||||
|
||||
class UpdateCurrentUser {
|
||||
final User user;
|
||||
UpdateCurrentUser(this.user);
|
||||
}
|
||||
13
lib/store/reducer/app_reducer.dart
Normal file
13
lib/store/reducer/app_reducer.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
import 'package:flutter_wisetronic/store/reducer/context_reducer.dart';
|
||||
import 'package:flutter_wisetronic/store/reducer/locale_reducer.dart';
|
||||
import 'package:flutter_wisetronic/store/reducer/user_reducer.dart';
|
||||
import 'package:flutter_wisetronic/store/state/app_state.dart';
|
||||
|
||||
AppState appReducer(AppState state, action) {
|
||||
return AppState(
|
||||
context: contextReducer(state.context, action),
|
||||
locale: localeReducer(state.locale, action),
|
||||
user: userReducer(state.user, action),
|
||||
);
|
||||
}
|
||||
12
lib/store/reducer/context_reducer.dart
Normal file
12
lib/store/reducer/context_reducer.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_wisetronic/store/actions.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
|
||||
final contextReducer = combineReducers<BuildContext>([
|
||||
TypedReducer<BuildContext, UpdateContext>(_updateContext)
|
||||
]);
|
||||
|
||||
BuildContext _updateContext(BuildContext context, action) {
|
||||
return action.context;
|
||||
}
|
||||
11
lib/store/reducer/locale_reducer.dart
Normal file
11
lib/store/reducer/locale_reducer.dart
Normal file
@@ -0,0 +1,11 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_wisetronic/store/actions.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
|
||||
final localeReducer = combineReducers<Locale>([
|
||||
TypedReducer<Locale, UpdateLocale>(_updateLocale)
|
||||
]);
|
||||
|
||||
Locale _updateLocale(Locale locale, action) {
|
||||
return action.locale;
|
||||
}
|
||||
13
lib/store/reducer/user_reducer.dart
Normal file
13
lib/store/reducer/user_reducer.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:flutter_wisetronic/models/user.dart';
|
||||
|
||||
import '../actions.dart';
|
||||
|
||||
final userReducer = combineReducers<User>([
|
||||
TypedReducer<User, UpdateCurrentUser>(_updateCurrentUser)
|
||||
]);
|
||||
|
||||
User _updateCurrentUser(User user, action) {
|
||||
return action.user;
|
||||
}
|
||||
42
lib/store/state/app_state.dart
Normal file
42
lib/store/state/app_state.dart
Normal file
@@ -0,0 +1,42 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_wisetronic/models/user.dart';
|
||||
|
||||
@immutable
|
||||
class AppState {
|
||||
final BuildContext context;
|
||||
final Locale locale;
|
||||
final User user;
|
||||
|
||||
AppState({this.context, this.locale, this.user});
|
||||
|
||||
factory AppState.init() => AppState();
|
||||
|
||||
AppState copyWith({
|
||||
BuildContext context,
|
||||
Locale locale}) {
|
||||
return AppState(
|
||||
context: context ?? this.context,
|
||||
locale: locale ?? this.locale,
|
||||
user: user ?? this.user,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
context.hashCode ^
|
||||
locale.hashCode ^
|
||||
user.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is AppState &&
|
||||
context == other.context &&
|
||||
locale == other.locale &&
|
||||
user == other.user;
|
||||
|
||||
@override
|
||||
String toString() =>
|
||||
'AppState(context: $context, locale: $locale), user: $user';
|
||||
}
|
||||
9
lib/store/store.dart
Normal file
9
lib/store/store.dart
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
import 'package:flutter_wisetronic/store/reducer/app_reducer.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'state/app_state.dart';
|
||||
|
||||
final store = Store<AppState>(
|
||||
appReducer,
|
||||
initialState: AppState.init(),
|
||||
);
|
||||
Reference in New Issue
Block a user