X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4ea2ff188ec745966387ce8bbe14880bfeede863..a29cf3418b6c301c0f531cecb7db4c721e7eb014:/src/store/my-account/my-account-panel-actions.ts diff --git a/src/store/my-account/my-account-panel-actions.ts b/src/store/my-account/my-account-panel-actions.ts index cb1584cbd0..34bb2693db 100644 --- a/src/store/my-account/my-account-panel-actions.ts +++ b/src/store/my-account/my-account-panel-actions.ts @@ -4,14 +4,28 @@ import { Dispatch } from "redux"; import { RootState } from "~/store/store"; +import { initialize } from "redux-form"; import { ServiceRepository } from "~/services/services"; import { setBreadcrumbs } from "~/store/breadcrumbs/breadcrumbs-actions"; +import { authActions } from "~/store/auth/auth-action"; +import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions"; + +export const MY_ACCOUNT_FORM = 'myAccountForm'; export const loadMyAccountPanel = () => + (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { + dispatch(setBreadcrumbs([{ label: 'User profile'}])); + }; + +export const saveEditedUser = (resource: any) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { try { - dispatch(setBreadcrumbs([{ label: 'User profile'}])); - } catch (e) { + await services.userService.update(resource.uuid, resource); + services.authService.saveUser(resource); + dispatch(authActions.USER_DETAILS_SUCCESS(resource)); + dispatch(initialize(MY_ACCOUNT_FORM, resource)); + dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Profile has been updated.", hideDuration: 2000, kind: SnackbarKind.SUCCESS })); + } catch(e) { return; } - }; \ No newline at end of file + };