This commit is contained in:
Hillel Coren 2019-11-20 22:11:11 +02:00
parent dd82000d6a
commit 87408e6d24
6 changed files with 37 additions and 25 deletions

View File

@ -56,7 +56,7 @@ Reducer<UserCompanyEntity> userCompanyEntityReducer = combineReducers([
loadCompanySuccessReducer), loadCompanySuccessReducer),
TypedReducer<UserCompanyEntity, SaveCompanySuccess>( TypedReducer<UserCompanyEntity, SaveCompanySuccess>(
saveCompanySuccessReducer), saveCompanySuccessReducer),
TypedReducer<UserCompanyEntity, SaveUserSuccess>((userCompany, action) => TypedReducer<UserCompanyEntity, SaveUserSettingsSuccess>((userCompany, action) =>
userCompany.rebuild((b) => b..user.replace(action.user))), userCompany.rebuild((b) => b..user.replace(action.user))),
]); ]);

View File

@ -37,8 +37,8 @@ class UpdateSettings implements PersistUI {
final SettingsEntity settings; final SettingsEntity settings;
} }
class UpdateSettingsUser implements PersistUI { class UpdateUserSettings implements PersistUI {
UpdateSettingsUser({@required this.user}); UpdateUserSettings({@required this.user});
final UserEntity user; final UserEntity user;
} }
@ -57,21 +57,21 @@ class UploadLogoFailure implements StopSaving {
final Object error; final Object error;
} }
class SaveUserRequest implements StartSaving { class SaveUserSettingsRequest implements StartSaving {
SaveUserRequest({this.completer, this.user}); SaveUserSettingsRequest({this.completer, this.user});
final Completer completer; final Completer completer;
final UserEntity user; final UserEntity user;
} }
class SaveUserSuccess implements StopSaving, PersistData, PersistUI { class SaveUserSettingsSuccess implements StopSaving, PersistData, PersistUI {
SaveUserSuccess(this.user); SaveUserSettingsSuccess(this.user);
final UserEntity user; final UserEntity user;
} }
class SaveUserFailure implements StopSaving { class SaveUserSettingsFailure implements StopSaving {
SaveUserFailure(this.error); SaveUserSettingsFailure(this.error);
final Object error; final Object error;
} }

View File

@ -27,7 +27,7 @@ List<Middleware<AppState>> createStoreSettingsMiddleware([
return [ return [
TypedMiddleware<AppState, ViewSettings>(viewSettings), TypedMiddleware<AppState, ViewSettings>(viewSettings),
TypedMiddleware<AppState, SaveCompanyRequest>(saveCompany), TypedMiddleware<AppState, SaveCompanyRequest>(saveCompany),
TypedMiddleware<AppState, SaveUserRequest>(saveUser), TypedMiddleware<AppState, SaveUserSettingsRequest>(saveUser),
TypedMiddleware<AppState, UploadLogoRequest>(uploadLogo), TypedMiddleware<AppState, UploadLogoRequest>(uploadLogo),
]; ];
} }
@ -85,16 +85,16 @@ Middleware<AppState> _saveCompany(SettingsRepository settingsRepository) {
Middleware<AppState> _saveUser(SettingsRepository settingsRepository) { Middleware<AppState> _saveUser(SettingsRepository settingsRepository) {
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) { return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
final action = dynamicAction as SaveUserRequest; final action = dynamicAction as SaveUserSettingsRequest;
settingsRepository settingsRepository
.saveUser(store.state.credentials, action.user) .saveUser(store.state.credentials, action.user)
.then((user) { .then((user) {
store.dispatch(SaveUserSuccess(user)); store.dispatch(SaveUserSettingsSuccess(user));
action.completer.complete(); action.completer.complete();
}).catchError((Object error) { }).catchError((Object error) {
print(error); print(error);
store.dispatch(SaveUserFailure(error)); store.dispatch(SaveUserSettingsFailure(error));
action.completer.completeError(error); action.completer.completeError(error);
}); });

View File

@ -210,7 +210,7 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
..isChanged = true); ..isChanged = true);
} }
}), }),
TypedReducer<SettingsUIState, UpdateSettingsUser>((state, action) { TypedReducer<SettingsUIState, UpdateUserSettings>((state, action) {
return state.rebuild((b) => b return state.rebuild((b) => b
..user.replace(action.user) ..user.replace(action.user)
..isChanged = true); ..isChanged = true);
@ -242,7 +242,7 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
..origClient.replace(action.client) ..origClient.replace(action.client)
..isChanged = false); ..isChanged = false);
}), }),
TypedReducer<SettingsUIState, prefix0.SaveUserSuccess>((state, action) { TypedReducer<SettingsUIState, prefix0.SaveUserSettingsSuccess>((state, action) {
return state.rebuild((b) => b return state.rebuild((b) => b
..user.replace(action.user) ..user.replace(action.user)
..origUser.replace(action.user) ..origUser.replace(action.user)

View File

@ -223,13 +223,6 @@ Reducer<int> selectedCompanyIndexReducer = combineReducers([
]); ]);
Reducer<SettingsUIState> settingsUIReducer = combineReducers([ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
TypedReducer<SettingsUIState, ClearSettingsFilter>((state, action) {
return state.rebuild((b) => b
..updatedAt = DateTime.now().millisecondsSinceEpoch
..company.replace(state.origCompany)
..entityType = EntityType.company
..isChanged = false);
}),
TypedReducer<SettingsUIState, ViewSettings>((state, action) { TypedReducer<SettingsUIState, ViewSettings>((state, action) {
return state.rebuild((b) => b return state.rebuild((b) => b
..company.replace(action.company ?? state.company) ..company.replace(action.company ?? state.company)
@ -238,6 +231,8 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
..origGroup.replace(action.group ?? state.origGroup) ..origGroup.replace(action.group ?? state.origGroup)
..client.replace(action.client ?? state.client) ..client.replace(action.client ?? state.client)
..origClient.replace(action.client ?? state.origClient) ..origClient.replace(action.client ?? state.origClient)
..user.replace(action.user ?? state.user)
..origUser.replace(action.user ?? state.origUser)
..updatedAt = DateTime.now().millisecondsSinceEpoch ..updatedAt = DateTime.now().millisecondsSinceEpoch
..section = action.section ?? state.section ..section = action.section ?? state.section
..isChanged = false ..isChanged = false
@ -266,7 +261,7 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
..isChanged = true); ..isChanged = true);
} }
}), }),
TypedReducer<SettingsUIState, UpdateSettingsUser>((state, action) { TypedReducer<SettingsUIState, UpdateUserSettings>((state, action) {
return state.rebuild((b) => b return state.rebuild((b) => b
..user.replace(action.user) ..user.replace(action.user)
..isChanged = true); ..isChanged = true);
@ -276,22 +271,32 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
..company.replace(state.origCompany) ..company.replace(state.origCompany)
..group.replace(state.origGroup) ..group.replace(state.origGroup)
..client.replace(state.origClient) ..client.replace(state.origClient)
..user.replace(state.origUser)
..isChanged = false ..isChanged = false
..updatedAt = DateTime.now().millisecondsSinceEpoch); ..updatedAt = DateTime.now().millisecondsSinceEpoch);
}), }),
TypedReducer<SettingsUIState, SaveCompanySuccess>((state, action) { TypedReducer<SettingsUIState, SaveCompanySuccess>((state, action) {
return state.rebuild((b) => b return state.rebuild((b) => b
..company.replace(action.company) ..company.replace(action.company)
..origCompany.replace(action.company)
..isChanged = false); ..isChanged = false);
}), }),
TypedReducer<SettingsUIState, SaveGroupSuccess>((state, action) { TypedReducer<SettingsUIState, SaveGroupSuccess>((state, action) {
return state.rebuild((b) => b return state.rebuild((b) => b
..group.replace(action.group) ..group.replace(action.group)
..origGroup.replace(action.group)
..isChanged = false); ..isChanged = false);
}), }),
TypedReducer<SettingsUIState, SaveClientSuccess>((state, action) { TypedReducer<SettingsUIState, SaveClientSuccess>((state, action) {
return state.rebuild((b) => b return state.rebuild((b) => b
..client.replace(action.client) ..client.replace(action.client)
..origClient.replace(action.client)
..isChanged = false);
}),
TypedReducer<SettingsUIState, SaveUserSettingsSuccess>((state, action) {
return state.rebuild((b) => b
..user.replace(action.user)
..origUser.replace(action.user)
..isChanged = false); ..isChanged = false);
}), }),
TypedReducer<SettingsUIState, FilterSettings>((state, action) { TypedReducer<SettingsUIState, FilterSettings>((state, action) {
@ -301,4 +306,11 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
? DateTime.now().millisecondsSinceEpoch ? DateTime.now().millisecondsSinceEpoch
: state.filterClearedAt); : state.filterClearedAt);
}), }),
TypedReducer<SettingsUIState, ClearSettingsFilter>((state, action) {
return state.rebuild((b) => b
..updatedAt = DateTime.now().millisecondsSinceEpoch
..company.replace(state.origCompany)
..entityType = EntityType.company
..isChanged = false);
}),
]); ]);

View File

@ -41,11 +41,11 @@ class UserDetailsVM {
return UserDetailsVM( return UserDetailsVM(
state: state, state: state,
user: state.uiState.settingsUIState.user, user: state.uiState.settingsUIState.user,
onChanged: (user) => store.dispatch(UpdateSettingsUser(user: user)), onChanged: (user) => store.dispatch(UpdateUserSettings(user: user)),
onSavePressed: (context) { onSavePressed: (context) {
final completer = snackBarCompleter<Null>( final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings); context, AppLocalization.of(context).savedSettings);
store.dispatch(SaveUserRequest( store.dispatch(SaveUserSettingsRequest(
completer: completer, completer: completer,
user: state.uiState.settingsUIState.user)); user: state.uiState.settingsUIState.user));
}); });