18559: Add user service setup and add return type for unsetup.
[arvados-workbench2.git] / src / views / my-account-panel / my-account-panel.tsx
index 508a4c7ecea3a4686b90f373fc92cf6971020df6..2421a28a7c54f899ec6a22911f21b1699e68013d 100644 (file)
@@ -2,17 +2,26 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { RootState } from '~/store/store';
-import { Dispatch } from 'redux';
+import { RootState } from 'store/store';
+import { compose } from 'redux';
+import { reduxForm, isPristine, isValid } from 'redux-form';
 import { connect } from 'react-redux';
-import { MyAccountPanelRoot, MyAccountPanelRootDataProps, MyAccountPanelRootActionProps } from '~/views/my-account-panel/my-account-panel-root';
+import { saveEditedUser } from 'store/my-account/my-account-panel-actions';
+import { MyAccountPanelRoot, MyAccountPanelRootDataProps } from 'views/my-account-panel/my-account-panel-root';
+import { MY_ACCOUNT_FORM } from "store/my-account/my-account-panel-actions";
 
 const mapStateToProps = (state: RootState): MyAccountPanelRootDataProps => ({
-    user: state.auth.user
+    isPristine: isPristine(MY_ACCOUNT_FORM)(state),
+    isValid: isValid(MY_ACCOUNT_FORM)(state),
+    initialValues: state.auth.user,
+    localCluster: state.auth.localCluster
 });
 
-const mapDispatchToProps = (dispatch: Dispatch): MyAccountPanelRootActionProps => ({
-
-});
-
-export const MyAccountPanel = connect(mapStateToProps, mapDispatchToProps)(MyAccountPanelRoot);
\ No newline at end of file
+export const MyAccountPanel = compose(
+    connect(mapStateToProps),
+    reduxForm({
+        form: MY_ACCOUNT_FORM,
+        onSubmit: (data, dispatch) => {
+            dispatch(saveEditedUser(data));
+        }
+    }))(MyAccountPanelRoot);