aboutsummaryrefslogtreecommitdiffstats
path: root/src/features/workspaces/containers
diff options
context:
space:
mode:
Diffstat (limited to 'src/features/workspaces/containers')
-rw-r--r--src/features/workspaces/containers/EditWorkspaceScreen.js52
-rw-r--r--src/features/workspaces/containers/WorkspacesScreen.js38
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 @@
1import React, { Component } from 'react';
2import { inject, observer } from 'mobx-react';
3
4import ErrorBoundary from '../../../components/util/ErrorBoundary';
5import { gaPage } from '../../../lib/analytics';
6import { state } from '../state';
7import EditWorkspaceForm from '../components/EditWorkspaceForm';
8import PropTypes from 'prop-types';
9
10@inject('stores', 'actions') @observer
11class 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
52export 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 @@
1import React, { Component } from 'react';
2import { inject, observer } from 'mobx-react';
3import PropTypes from 'prop-types';
4import { gaPage } from '../../../lib/analytics';
5import { state } from '../state';
6import WorkspacesDashboard from '../components/WorkspacesDashboard';
7import ErrorBoundary from '../../../components/util/ErrorBoundary';
8
9@inject('actions') @observer
10class 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
38export default WorkspacesScreen;