15088: Adds routing for link-account panel
[arvados-workbench2.git] / src / views / my-account-panel / my-account-panel.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { RootState } from '~/store/store';
6 import { Dispatch } from 'redux';
7 import { compose } from 'redux';
8 import { reduxForm, isPristine, isValid } from 'redux-form';
9 import { connect } from 'react-redux';
10 import { saveEditedUser, openLinkAccount } from '~/store/my-account/my-account-panel-actions';
11 import { MyAccountPanelRoot, MyAccountPanelRootDataProps, MyAccountPanelRootActionProps } from '~/views/my-account-panel/my-account-panel-root';
12 import { MY_ACCOUNT_FORM } from "~/store/my-account/my-account-panel-actions";
13
14 const mapStateToProps = (state: RootState): MyAccountPanelRootDataProps => ({
15     isPristine: isPristine(MY_ACCOUNT_FORM)(state),
16     isValid: isValid(MY_ACCOUNT_FORM)(state),
17     initialValues: state.auth.user,
18     localCluster: state.auth.localCluster
19 });
20
21 const mapDispatchToProps = (dispatch: Dispatch): MyAccountPanelRootActionProps => ({
22     openLinkAccount: () => dispatch<any>(openLinkAccount())
23 });
24
25 export const MyAccountPanel = compose(
26     connect(mapStateToProps, mapDispatchToProps),
27     reduxForm({
28         form: MY_ACCOUNT_FORM,
29         onSubmit: (data, dispatch) => {
30             dispatch(saveEditedUser(data));
31         }
32     }))(MyAccountPanelRoot);