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),
TypedReducer<UserCompanyEntity, SaveCompanySuccess>(
saveCompanySuccessReducer),
TypedReducer<UserCompanyEntity, SaveUserSuccess>((userCompany, action) =>
TypedReducer<UserCompanyEntity, SaveUserSettingsSuccess>((userCompany, action) =>
userCompany.rebuild((b) => b..user.replace(action.user))),
]);

View File

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

View File

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

View File

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

View File

@ -223,13 +223,6 @@ Reducer<int> selectedCompanyIndexReducer = 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) {
return state.rebuild((b) => b
..company.replace(action.company ?? state.company)
@ -238,6 +231,8 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
..origGroup.replace(action.group ?? state.origGroup)
..client.replace(action.client ?? state.client)
..origClient.replace(action.client ?? state.origClient)
..user.replace(action.user ?? state.user)
..origUser.replace(action.user ?? state.origUser)
..updatedAt = DateTime.now().millisecondsSinceEpoch
..section = action.section ?? state.section
..isChanged = false
@ -266,7 +261,7 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
..isChanged = true);
}
}),
TypedReducer<SettingsUIState, UpdateSettingsUser>((state, action) {
TypedReducer<SettingsUIState, UpdateUserSettings>((state, action) {
return state.rebuild((b) => b
..user.replace(action.user)
..isChanged = true);
@ -276,22 +271,32 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
..company.replace(state.origCompany)
..group.replace(state.origGroup)
..client.replace(state.origClient)
..user.replace(state.origUser)
..isChanged = false
..updatedAt = DateTime.now().millisecondsSinceEpoch);
}),
TypedReducer<SettingsUIState, SaveCompanySuccess>((state, action) {
return state.rebuild((b) => b
..company.replace(action.company)
..origCompany.replace(action.company)
..isChanged = false);
}),
TypedReducer<SettingsUIState, SaveGroupSuccess>((state, action) {
return state.rebuild((b) => b
..group.replace(action.group)
..origGroup.replace(action.group)
..isChanged = false);
}),
TypedReducer<SettingsUIState, SaveClientSuccess>((state, action) {
return state.rebuild((b) => b
..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);
}),
TypedReducer<SettingsUIState, FilterSettings>((state, action) {
@ -301,4 +306,11 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
? DateTime.now().millisecondsSinceEpoch
: 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(
state: state,
user: state.uiState.settingsUIState.user,
onChanged: (user) => store.dispatch(UpdateSettingsUser(user: user)),
onChanged: (user) => store.dispatch(UpdateUserSettings(user: user)),
onSavePressed: (context) {
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
store.dispatch(SaveUserRequest(
store.dispatch(SaveUserSettingsRequest(
completer: completer,
user: state.uiState.settingsUIState.user));
});