diff options
Diffstat (limited to 'src/features/workspaces/containers')
-rw-r--r-- | src/features/workspaces/containers/EditWorkspaceScreen.js | 52 | ||||
-rw-r--r-- | src/features/workspaces/containers/WorkspacesScreen.js | 38 |
2 files changed, 90 insertions, 0 deletions
diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.js new file mode 100644 index 000000000..87b6062fb --- /dev/null +++ b/src/features/workspaces/containers/EditWorkspaceScreen.js | |||
@@ -0,0 +1,52 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import { inject, observer } from 'mobx-react'; | ||
3 | |||
4 | import ErrorBoundary from '../../../components/util/ErrorBoundary'; | ||
5 | import { gaPage } from '../../../lib/analytics'; | ||
6 | import { state } from '../state'; | ||
7 | import EditWorkspaceForm from '../components/EditWorkspaceForm'; | ||
8 | import PropTypes from 'prop-types'; | ||
9 | |||
10 | @inject('stores', 'actions') @observer | ||
11 | class EditWorkspaceScreen extends Component { | ||
12 | static propTypes = { | ||
13 | actions: PropTypes.shape({ | ||
14 | workspace: PropTypes.shape({ | ||
15 | delete: PropTypes.func.isRequired, | ||
16 | }), | ||
17 | }).isRequired, | ||
18 | }; | ||
19 | |||
20 | componentDidMount() { | ||
21 | gaPage('Settings/Workspace/Edit'); | ||
22 | } | ||
23 | |||
24 | onDelete = () => { | ||
25 | const { workspaceBeingEdited } = state; | ||
26 | const { actions } = this.props; | ||
27 | if (!workspaceBeingEdited) return null; | ||
28 | actions.workspace.delete({ workspace: workspaceBeingEdited }); | ||
29 | }; | ||
30 | |||
31 | onSave = (values) => { | ||
32 | console.log('save workspace', values); | ||
33 | }; | ||
34 | |||
35 | render() { | ||
36 | const { workspaceBeingEdited } = state; | ||
37 | if (!workspaceBeingEdited) return null; | ||
38 | return ( | ||
39 | <ErrorBoundary> | ||
40 | <EditWorkspaceForm | ||
41 | workspace={workspaceBeingEdited} | ||
42 | onDelete={this.onDelete} | ||
43 | onSave={this.onSave} | ||
44 | isDeleting={false} | ||
45 | isSaving={false} | ||
46 | /> | ||
47 | </ErrorBoundary> | ||
48 | ); | ||
49 | } | ||
50 | } | ||
51 | |||
52 | export default EditWorkspaceScreen; | ||
diff --git a/src/features/workspaces/containers/WorkspacesScreen.js b/src/features/workspaces/containers/WorkspacesScreen.js new file mode 100644 index 000000000..a3876a01a --- /dev/null +++ b/src/features/workspaces/containers/WorkspacesScreen.js | |||
@@ -0,0 +1,38 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import { inject, observer } from 'mobx-react'; | ||
3 | import PropTypes from 'prop-types'; | ||
4 | import { gaPage } from '../../../lib/analytics'; | ||
5 | import { state } from '../state'; | ||
6 | import WorkspacesDashboard from '../components/WorkspacesDashboard'; | ||
7 | import ErrorBoundary from '../../../components/util/ErrorBoundary'; | ||
8 | |||
9 | @inject('actions') @observer | ||
10 | class WorkspacesScreen extends Component { | ||
11 | static propTypes = { | ||
12 | actions: PropTypes.shape({ | ||
13 | workspace: PropTypes.shape({ | ||
14 | edit: PropTypes.func.isRequired, | ||
15 | }), | ||
16 | }).isRequired, | ||
17 | }; | ||
18 | |||
19 | componentDidMount() { | ||
20 | gaPage('Settings/Workspaces Dashboard'); | ||
21 | } | ||
22 | |||
23 | render() { | ||
24 | const { actions } = this.props; | ||
25 | return ( | ||
26 | <ErrorBoundary> | ||
27 | <WorkspacesDashboard | ||
28 | workspaces={state.workspaces} | ||
29 | isLoading={state.isLoading} | ||
30 | onCreateWorkspaceSubmit={data => actions.workspace.create(data)} | ||
31 | onWorkspaceClick={w => actions.workspace.edit({ workspace: w })} | ||
32 | /> | ||
33 | </ErrorBoundary> | ||
34 | ); | ||
35 | } | ||
36 | } | ||
37 | |||
38 | export default WorkspacesScreen; | ||