This commit is contained in:
Hillel Coren 2019-09-12 11:13:02 +03:00
parent 2d8cef62d0
commit 3aad3b385e
9 changed files with 64 additions and 58 deletions

View File

@ -17,7 +17,7 @@ Serializers _$serializers = (new Serializers().toBuilder()
..add(ClientState.serializer) ..add(ClientState.serializer)
..add(ClientUIState.serializer) ..add(ClientUIState.serializer)
..add(CompanyEntity.serializer) ..add(CompanyEntity.serializer)
..add(CompanyState.serializer) ..add(UserCompanyState.serializer)
..add(ContactEntity.serializer) ..add(ContactEntity.serializer)
..add(CountryEntity.serializer) ..add(CountryEntity.serializer)
..add(CountryItemResponse.serializer) ..add(CountryItemResponse.serializer)

View File

@ -20,22 +20,22 @@ class PersistenceRepository {
final FileStorage fileStorage; final FileStorage fileStorage;
Future<File> saveCompanyState(CompanyState state) async { Future<File> saveCompanyState(UserCompanyState state) async {
/* /*
// TODO re-enable // TODO re-enable
final stateWithoutToken = state.rebuild( final stateWithoutToken = state.rebuild(
(b) => b..company.replace(state.company.rebuild((b) => b..token = ''))); (b) => b..company.replace(state.company.rebuild((b) => b..token = '')));
*/ */
final data = serializers.serializeWith(CompanyState.serializer, state); final data = serializers.serializeWith(UserCompanyState.serializer, state);
return await fileStorage.save(json.encode(data)); return await fileStorage.save(json.encode(data));
} }
Future<CompanyState> loadCompanyState(int index) async { Future<UserCompanyState> loadCompanyState(int index) async {
final String data = await fileStorage.load(); final String data = await fileStorage.load();
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final token = prefs.getString(getCompanyTokenKey(index - 1)) ?? ''; final token = prefs.getString(getCompanyTokenKey(index - 1)) ?? '';
final companyState = final companyState = serializers.deserializeWith(
serializers.deserializeWith(CompanyState.serializer, json.decode(data)); UserCompanyState.serializer, json.decode(data));
/* /*
// TODO re-enable // TODO re-enable

View File

@ -143,11 +143,11 @@ Middleware<AppState> _createLoadState(
AuthState authState; AuthState authState;
UIState uiState; UIState uiState;
StaticState staticState; StaticState staticState;
CompanyState company1State; UserCompanyState company1State;
CompanyState company2State; UserCompanyState company2State;
CompanyState company3State; UserCompanyState company3State;
CompanyState company4State; UserCompanyState company4State;
CompanyState company5State; UserCompanyState company5State;
return (Store<AppState> store, dynamic dynamicAction, return (Store<AppState> store, dynamic dynamicAction,
NextDispatcher next) async { NextDispatcher next) async {

View File

@ -49,13 +49,11 @@ abstract class AppState implements Built<AppState, AppStateBuilder> {
serverVersion: '', serverVersion: '',
authState: AuthState(), authState: AuthState(),
staticState: StaticState(), staticState: StaticState(),
/* companyState1: UserCompanyState(),
companyState1: CompanyState(), companyState2: UserCompanyState(),
companyState2: CompanyState(), companyState3: UserCompanyState(),
companyState3: CompanyState(), companyState4: UserCompanyState(),
companyState4: CompanyState(), companyState5: UserCompanyState(),
companyState5: CompanyState(),
*/
uiState: UIState( uiState: UIState(
CompanyEntity(), CompanyEntity(),
enableDarkMode: enableDarkMode, enableDarkMode: enableDarkMode,
@ -80,20 +78,20 @@ abstract class AppState implements Built<AppState, AppStateBuilder> {
UIState get uiState; UIState get uiState;
CompanyState get companyState1; UserCompanyState get companyState1;
CompanyState get companyState2; UserCompanyState get companyState2;
CompanyState get companyState3; UserCompanyState get companyState3;
CompanyState get companyState4; UserCompanyState get companyState4;
CompanyState get companyState5; UserCompanyState get companyState5;
//factory AppState([void updates(AppStateBuilder b)]) = _$AppState; //factory AppState([void updates(AppStateBuilder b)]) = _$AppState;
static Serializer<AppState> get serializer => _$appStateSerializer; static Serializer<AppState> get serializer => _$appStateSerializer;
CompanyState get selectedCompanyState { UserCompanyState get selectedCompanyState {
switch (uiState.selectedCompanyIndex) { switch (uiState.selectedCompanyIndex) {
case 1: case 1:
return companyState1; return companyState1;

View File

@ -38,19 +38,19 @@ class _$AppStateSerializer implements StructuredSerializer<AppState> {
specifiedType: const FullType(UIState)), specifiedType: const FullType(UIState)),
'companyState1', 'companyState1',
serializers.serialize(object.companyState1, serializers.serialize(object.companyState1,
specifiedType: const FullType(CompanyState)), specifiedType: const FullType(UserCompanyState)),
'companyState2', 'companyState2',
serializers.serialize(object.companyState2, serializers.serialize(object.companyState2,
specifiedType: const FullType(CompanyState)), specifiedType: const FullType(UserCompanyState)),
'companyState3', 'companyState3',
serializers.serialize(object.companyState3, serializers.serialize(object.companyState3,
specifiedType: const FullType(CompanyState)), specifiedType: const FullType(UserCompanyState)),
'companyState4', 'companyState4',
serializers.serialize(object.companyState4, serializers.serialize(object.companyState4,
specifiedType: const FullType(CompanyState)), specifiedType: const FullType(UserCompanyState)),
'companyState5', 'companyState5',
serializers.serialize(object.companyState5, serializers.serialize(object.companyState5,
specifiedType: const FullType(CompanyState)), specifiedType: const FullType(UserCompanyState)),
]; ];
return result; return result;
@ -93,23 +93,28 @@ class _$AppStateSerializer implements StructuredSerializer<AppState> {
break; break;
case 'companyState1': case 'companyState1':
result.companyState1.replace(serializers.deserialize(value, result.companyState1.replace(serializers.deserialize(value,
specifiedType: const FullType(CompanyState)) as CompanyState); specifiedType: const FullType(UserCompanyState))
as UserCompanyState);
break; break;
case 'companyState2': case 'companyState2':
result.companyState2.replace(serializers.deserialize(value, result.companyState2.replace(serializers.deserialize(value,
specifiedType: const FullType(CompanyState)) as CompanyState); specifiedType: const FullType(UserCompanyState))
as UserCompanyState);
break; break;
case 'companyState3': case 'companyState3':
result.companyState3.replace(serializers.deserialize(value, result.companyState3.replace(serializers.deserialize(value,
specifiedType: const FullType(CompanyState)) as CompanyState); specifiedType: const FullType(UserCompanyState))
as UserCompanyState);
break; break;
case 'companyState4': case 'companyState4':
result.companyState4.replace(serializers.deserialize(value, result.companyState4.replace(serializers.deserialize(value,
specifiedType: const FullType(CompanyState)) as CompanyState); specifiedType: const FullType(UserCompanyState))
as UserCompanyState);
break; break;
case 'companyState5': case 'companyState5':
result.companyState5.replace(serializers.deserialize(value, result.companyState5.replace(serializers.deserialize(value,
specifiedType: const FullType(CompanyState)) as CompanyState); specifiedType: const FullType(UserCompanyState))
as UserCompanyState);
break; break;
} }
} }
@ -132,15 +137,15 @@ class _$AppState extends AppState {
@override @override
final UIState uiState; final UIState uiState;
@override @override
final CompanyState companyState1; final UserCompanyState companyState1;
@override @override
final CompanyState companyState2; final UserCompanyState companyState2;
@override @override
final CompanyState companyState3; final UserCompanyState companyState3;
@override @override
final CompanyState companyState4; final UserCompanyState companyState4;
@override @override
final CompanyState companyState5; final UserCompanyState companyState5;
factory _$AppState([void Function(AppStateBuilder) updates]) => factory _$AppState([void Function(AppStateBuilder) updates]) =>
(new AppStateBuilder()..update(updates)).build(); (new AppStateBuilder()..update(updates)).build();

View File

@ -16,9 +16,9 @@ import 'package:invoiceninja_flutter/redux/payment/payment_reducer.dart';
import 'package:invoiceninja_flutter/redux/quote/quote_reducer.dart'; import 'package:invoiceninja_flutter/redux/quote/quote_reducer.dart';
// STARTER: import - do not remove comment // STARTER: import - do not remove comment
CompanyState companyReducer(CompanyState state, dynamic action) { UserCompanyState companyReducer(UserCompanyState state, dynamic action) {
if (action is RefreshData && action.loadCompanies) { if (action is RefreshData && action.loadCompanies) {
return CompanyState(); return UserCompanyState();
} }
return state.rebuild((b) => b return state.rebuild((b) => b

View File

@ -54,9 +54,9 @@ List<String> getCurrencyIds(
} }
var memoizedFilteredSelector = memo2( var memoizedFilteredSelector = memo2(
(String filter, CompanyState state) => filteredSelector(filter, state)); (String filter, UserCompanyState state) => filteredSelector(filter, state));
List<BaseEntity> filteredSelector(String filter, CompanyState state) { List<BaseEntity> filteredSelector(String filter, UserCompanyState state) {
final List<BaseEntity> list = [] final List<BaseEntity> list = []
..addAll(state.productState.list ..addAll(state.productState.list
.map((productId) => state.productState.map[productId]) .map((productId) => state.productState.map[productId])

View File

@ -23,9 +23,9 @@ import 'package:invoiceninja_flutter/redux/quote/quote_state.dart';
part 'company_state.g.dart'; part 'company_state.g.dart';
abstract class CompanyState abstract class UserCompanyState
implements Built<CompanyState, CompanyStateBuilder> { implements Built<UserCompanyState, CompanyStateBuilder> {
factory CompanyState() { factory UserCompanyState() {
return _$CompanyState._( return _$CompanyState._(
userCompany: UserCompanyEntity(), userCompany: UserCompanyEntity(),
documentState: DocumentState(), documentState: DocumentState(),
@ -43,7 +43,7 @@ abstract class CompanyState
); );
} }
CompanyState._(); UserCompanyState._();
@nullable @nullable
UserCompanyEntity get userCompany; UserCompanyEntity get userCompany;
@ -79,5 +79,6 @@ abstract class CompanyState
TokenEntity get token => userCompany.token; TokenEntity get token => userCompany.token;
//factory CompanyState([void updates(CompanyStateBuilder b)]) = _$CompanyState; //factory CompanyState([void updates(CompanyStateBuilder b)]) = _$CompanyState;
static Serializer<CompanyState> get serializer => _$companyStateSerializer; static Serializer<UserCompanyState> get serializer =>
_$companyStateSerializer;
} }

View File

@ -6,17 +6,18 @@ part of 'company_state.dart';
// BuiltValueGenerator // BuiltValueGenerator
// ************************************************************************** // **************************************************************************
Serializer<CompanyState> _$companyStateSerializer = Serializer<UserCompanyState> _$companyStateSerializer =
new _$CompanyStateSerializer(); new _$CompanyStateSerializer();
class _$CompanyStateSerializer implements StructuredSerializer<CompanyState> { class _$CompanyStateSerializer
implements StructuredSerializer<UserCompanyState> {
@override @override
final Iterable<Type> types = const [CompanyState, _$CompanyState]; final Iterable<Type> types = const [UserCompanyState, _$CompanyState];
@override @override
final String wireName = 'CompanyState'; final String wireName = 'CompanyState';
@override @override
Iterable<Object> serialize(Serializers serializers, CompanyState object, Iterable<Object> serialize(Serializers serializers, UserCompanyState object,
{FullType specifiedType = FullType.unspecified}) { {FullType specifiedType = FullType.unspecified}) {
final result = <Object>[ final result = <Object>[
'documentState', 'documentState',
@ -63,7 +64,8 @@ class _$CompanyStateSerializer implements StructuredSerializer<CompanyState> {
} }
@override @override
CompanyState deserialize(Serializers serializers, Iterable<Object> serialized, UserCompanyState deserialize(
Serializers serializers, Iterable<Object> serialized,
{FullType specifiedType = FullType.unspecified}) { {FullType specifiedType = FullType.unspecified}) {
final result = new CompanyStateBuilder(); final result = new CompanyStateBuilder();
@ -129,7 +131,7 @@ class _$CompanyStateSerializer implements StructuredSerializer<CompanyState> {
} }
} }
class _$CompanyState extends CompanyState { class _$CompanyState extends UserCompanyState {
@override @override
final UserCompanyEntity userCompany; final UserCompanyEntity userCompany;
@override @override
@ -208,7 +210,7 @@ class _$CompanyState extends CompanyState {
} }
@override @override
CompanyState rebuild(void Function(CompanyStateBuilder) updates) => UserCompanyState rebuild(void Function(CompanyStateBuilder) updates) =>
(toBuilder()..update(updates)).build(); (toBuilder()..update(updates)).build();
@override @override
@ -217,7 +219,7 @@ class _$CompanyState extends CompanyState {
@override @override
bool operator ==(Object other) { bool operator ==(Object other) {
if (identical(other, this)) return true; if (identical(other, this)) return true;
return other is CompanyState && return other is UserCompanyState &&
userCompany == other.userCompany && userCompany == other.userCompany &&
documentState == other.documentState && documentState == other.documentState &&
dashboardState == other.dashboardState && dashboardState == other.dashboardState &&
@ -278,7 +280,7 @@ class _$CompanyState extends CompanyState {
} }
class CompanyStateBuilder class CompanyStateBuilder
implements Builder<CompanyState, CompanyStateBuilder> { implements Builder<UserCompanyState, CompanyStateBuilder> {
_$CompanyState _$v; _$CompanyState _$v;
UserCompanyEntityBuilder _userCompany; UserCompanyEntityBuilder _userCompany;
@ -374,7 +376,7 @@ class CompanyStateBuilder
} }
@override @override
void replace(CompanyState other) { void replace(UserCompanyState other) {
if (other == null) { if (other == null) {
throw new ArgumentError.notNull('other'); throw new ArgumentError.notNull('other');
} }