diff options
Diffstat (limited to 'src/features')
-rw-r--r-- | src/features/workspaces/api.js | 10 | ||||
-rw-r--r-- | src/features/workspaces/store.js | 9 |
2 files changed, 4 insertions, 15 deletions
diff --git a/src/features/workspaces/api.js b/src/features/workspaces/api.js index 0a3e2bfa4..356e48cdb 100644 --- a/src/features/workspaces/api.js +++ b/src/features/workspaces/api.js | |||
@@ -52,22 +52,12 @@ export const workspaceApi = { | |||
52 | if (!result.ok) throw result; | 52 | if (!result.ok) throw result; |
53 | return new Workspace(await result.json()); | 53 | return new Workspace(await result.json()); |
54 | }, | 54 | }, |
55 | |||
56 | getWorkspaceSettings: async () => ( | ||
57 | localStorage.getItem('workspaces') || {} | ||
58 | ), | ||
59 | |||
60 | setWorkspaceSettings: async settings => ( | ||
61 | localStorage.setItem('workspaces', settings) | ||
62 | ), | ||
63 | }; | 55 | }; |
64 | 56 | ||
65 | export const getUserWorkspacesRequest = new Request(workspaceApi, 'getUserWorkspaces'); | 57 | export const getUserWorkspacesRequest = new Request(workspaceApi, 'getUserWorkspaces'); |
66 | export const createWorkspaceRequest = new Request(workspaceApi, 'createWorkspace'); | 58 | export const createWorkspaceRequest = new Request(workspaceApi, 'createWorkspace'); |
67 | export const deleteWorkspaceRequest = new Request(workspaceApi, 'deleteWorkspace'); | 59 | export const deleteWorkspaceRequest = new Request(workspaceApi, 'deleteWorkspace'); |
68 | export const updateWorkspaceRequest = new Request(workspaceApi, 'updateWorkspace'); | 60 | export const updateWorkspaceRequest = new Request(workspaceApi, 'updateWorkspace'); |
69 | export const getWorkspaceSettingsRequest = new Request(workspaceApi, 'getWorkspaceSettings'); | ||
70 | export const setWorkspaceSettingsRequest = new Request(workspaceApi, 'setWorkspaceSettings'); | ||
71 | 61 | ||
72 | export const resetApiRequests = () => { | 62 | export const resetApiRequests = () => { |
73 | getUserWorkspacesRequest.reset(); | 63 | getUserWorkspacesRequest.reset(); |
diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index 2abb91c22..4d65712a7 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js | |||
@@ -3,13 +3,14 @@ import { | |||
3 | observable, | 3 | observable, |
4 | action, | 4 | action, |
5 | } from 'mobx'; | 5 | } from 'mobx'; |
6 | import localStorage from 'mobx-localstorage'; | ||
6 | import { matchRoute } from '../../helpers/routing-helpers'; | 7 | import { matchRoute } from '../../helpers/routing-helpers'; |
7 | import { workspaceActions } from './actions'; | 8 | import { workspaceActions } from './actions'; |
8 | import { FeatureStore } from '../utils/FeatureStore'; | 9 | import { FeatureStore } from '../utils/FeatureStore'; |
9 | import { | 10 | import { |
10 | createWorkspaceRequest, | 11 | createWorkspaceRequest, |
11 | deleteWorkspaceRequest, | 12 | deleteWorkspaceRequest, |
12 | getUserWorkspacesRequest, getWorkspaceSettingsRequest, setWorkspaceSettingsRequest, | 13 | getUserWorkspacesRequest, |
13 | updateWorkspaceRequest, | 14 | updateWorkspaceRequest, |
14 | } from './api'; | 15 | } from './api'; |
15 | 16 | ||
@@ -38,7 +39,7 @@ export default class WorkspacesStore extends FeatureStore { | |||
38 | } | 39 | } |
39 | 40 | ||
40 | @computed get settings() { | 41 | @computed get settings() { |
41 | return getWorkspaceSettingsRequest.result; | 42 | return localStorage.getItem('workspaces') || {}; |
42 | } | 43 | } |
43 | 44 | ||
44 | @computed get userHasWorkspaces() { | 45 | @computed get userHasWorkspaces() { |
@@ -74,7 +75,6 @@ export default class WorkspacesStore extends FeatureStore { | |||
74 | ]); | 75 | ]); |
75 | 76 | ||
76 | getUserWorkspacesRequest.execute(); | 77 | getUserWorkspacesRequest.execute(); |
77 | getWorkspaceSettingsRequest.execute(); | ||
78 | this.isFeatureActive = true; | 78 | this.isFeatureActive = true; |
79 | } | 79 | } |
80 | 80 | ||
@@ -105,7 +105,7 @@ export default class WorkspacesStore extends FeatureStore { | |||
105 | _getWorkspaceById = id => this.workspaces.find(w => w.id === id); | 105 | _getWorkspaceById = id => this.workspaces.find(w => w.id === id); |
106 | 106 | ||
107 | _updateSettings = (changes) => { | 107 | _updateSettings = (changes) => { |
108 | setWorkspaceSettingsRequest.execute({ | 108 | localStorage.setItem('workspaces', { |
109 | ...this.settings, | 109 | ...this.settings, |
110 | ...changes, | 110 | ...changes, |
111 | }); | 111 | }); |
@@ -170,7 +170,6 @@ export default class WorkspacesStore extends FeatureStore { | |||
170 | this.isSwitchingWorkspace = true; | 170 | this.isSwitchingWorkspace = true; |
171 | this.nextWorkspace = null; | 171 | this.nextWorkspace = null; |
172 | this._updateSettings({ lastActiveWorkspace: null }); | 172 | this._updateSettings({ lastActiveWorkspace: null }); |
173 | getWorkspaceSettingsRequest.execute(); | ||
174 | // Delay switching to next workspace so that the services loading does not drag down UI | 173 | // Delay switching to next workspace so that the services loading does not drag down UI |
175 | setTimeout(() => { | 174 | setTimeout(() => { |
176 | this.activeWorkspace = null; | 175 | this.activeWorkspace = null; |