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.tsx (renamed from src/features/workspaces/containers/EditWorkspaceScreen.js)34
-rw-r--r--src/features/workspaces/containers/WorkspacesScreen.tsx (renamed from src/features/workspaces/containers/WorkspacesScreen.js)20
2 files changed, 28 insertions, 26 deletions
diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.tsx
index bd9e235e3..8e8f8179d 100644
--- a/src/features/workspaces/containers/EditWorkspaceScreen.js
+++ b/src/features/workspaces/containers/EditWorkspaceScreen.tsx
@@ -1,26 +1,26 @@
1import { Component } from 'react'; 1import { Component } from 'react';
2import { inject, observer } from 'mobx-react'; 2import { inject, observer } from 'mobx-react';
3import PropTypes from 'prop-types';
4 3
5import ErrorBoundary from '../../../components/util/ErrorBoundary'; 4import ErrorBoundary from '../../../components/util/ErrorBoundary';
6import EditWorkspaceForm from '../components/EditWorkspaceForm'; 5import EditWorkspaceForm from '../components/EditWorkspaceForm';
7import ServicesStore from '../../../stores/ServicesStore';
8import Workspace from '../models/Workspace'; 6import Workspace from '../models/Workspace';
9import { workspaceStore } from '../index'; 7import { workspaceStore } from '../index';
10import { deleteWorkspaceRequest, updateWorkspaceRequest } from '../api'; 8import { deleteWorkspaceRequest, updateWorkspaceRequest } from '../api';
11import WorkspacesStore from '../store'; 9import { ServicesStore, WorkspacesStore } from '../../../stores.types';
12 10
13@inject('stores', 'actions') @observer 11type Props = {
14class EditWorkspaceScreen extends Component { 12 actions: {
15 static propTypes = { 13 workspaces: WorkspacesStore;
16 actions: PropTypes.shape({
17 workspaces: PropTypes.instanceOf(WorkspacesStore),
18 }).isRequired,
19 stores: PropTypes.shape({
20 services: PropTypes.instanceOf(ServicesStore).isRequired,
21 }).isRequired,
22 }; 14 };
15 stores: {
16 services: ServicesStore;
17 };
18};
23 19
20@inject('stores', 'actions')
21@observer
22class EditWorkspaceScreen extends Component<Props> {
23 // @ts-expect-error Not all code paths return a value.
24 onDelete = () => { 24 onDelete = () => {
25 const { workspaceBeingEdited } = workspaceStore; 25 const { workspaceBeingEdited } = workspaceStore;
26 const { actions } = this.props; 26 const { actions } = this.props;
@@ -28,12 +28,14 @@ class EditWorkspaceScreen extends Component {
28 actions.workspaces.delete({ workspace: workspaceBeingEdited }); 28 actions.workspaces.delete({ workspace: workspaceBeingEdited });
29 }; 29 };
30 30
31 onSave = (values) => { 31 onSave = values => {
32 const { workspaceBeingEdited } = workspaceStore; 32 const { workspaceBeingEdited } = workspaceStore;
33 const { actions } = this.props; 33 const { actions } = this.props;
34 const workspace = new Workspace( 34 const workspace = new Workspace({
35 ({ saving: true, ...workspaceBeingEdited, ...values }), 35 saving: true,
36 ); 36 ...workspaceBeingEdited,
37 ...values,
38 });
37 actions.workspaces.update({ workspace }); 39 actions.workspaces.update({ workspace });
38 }; 40 };
39 41
diff --git a/src/features/workspaces/containers/WorkspacesScreen.js b/src/features/workspaces/containers/WorkspacesScreen.tsx
index 2ba3784cb..a07e92439 100644
--- a/src/features/workspaces/containers/WorkspacesScreen.js
+++ b/src/features/workspaces/containers/WorkspacesScreen.tsx
@@ -1,6 +1,5 @@
1import { Component } from 'react'; 1import { Component } from 'react';
2import { inject, observer } from 'mobx-react'; 2import { inject, observer } from 'mobx-react';
3import PropTypes from 'prop-types';
4import WorkspacesDashboard from '../components/WorkspacesDashboard'; 3import WorkspacesDashboard from '../components/WorkspacesDashboard';
5import ErrorBoundary from '../../../components/util/ErrorBoundary'; 4import ErrorBoundary from '../../../components/util/ErrorBoundary';
6import { workspaceStore } from '../index'; 5import { workspaceStore } from '../index';
@@ -10,16 +9,17 @@ import {
10 getUserWorkspacesRequest, 9 getUserWorkspacesRequest,
11 updateWorkspaceRequest, 10 updateWorkspaceRequest,
12} from '../api'; 11} from '../api';
13import WorkspacesStore from '../store'; 12import { WorkspacesStore } from '../../../stores.types';
14 13
15@inject('stores', 'actions') @observer 14type Props = {
16class WorkspacesScreen extends Component { 15 actions: {
17 static propTypes = { 16 workspaces: WorkspacesStore;
18 actions: PropTypes.shape({
19 workspaces: PropTypes.instanceOf(WorkspacesStore),
20 }).isRequired,
21 }; 17 };
18};
22 19
20@inject('stores', 'actions')
21@observer
22class WorkspacesScreen extends Component<Props> {
23 render() { 23 render() {
24 const { actions } = this.props; 24 const { actions } = this.props;
25 return ( 25 return (
@@ -30,8 +30,8 @@ class WorkspacesScreen extends Component {
30 createWorkspaceRequest={createWorkspaceRequest} 30 createWorkspaceRequest={createWorkspaceRequest}
31 deleteWorkspaceRequest={deleteWorkspaceRequest} 31 deleteWorkspaceRequest={deleteWorkspaceRequest}
32 updateWorkspaceRequest={updateWorkspaceRequest} 32 updateWorkspaceRequest={updateWorkspaceRequest}
33 onCreateWorkspaceSubmit={(data) => actions.workspaces.create(data)} 33 onCreateWorkspaceSubmit={data => actions.workspaces.create(data)}
34 onWorkspaceClick={(w) => actions.workspaces.edit({ workspace: w })} 34 onWorkspaceClick={w => actions.workspaces.edit({ workspace: w })}
35 /> 35 />
36 </ErrorBoundary> 36 </ErrorBoundary>
37 ); 37 );