aboutsummaryrefslogtreecommitdiffstats
path: root/src/features/workspaces/store.js
diff options
context:
space:
mode:
authorLibravatar Dominik Guzei <dominik.guzei@gmail.com>2018-12-10 17:15:37 +0100
committerLibravatar Dominik Guzei <dominik.guzei@gmail.com>2019-02-12 13:35:31 +0100
commit4a537e890d95e8666985ce77df4c6327582332be (patch)
treeb47dcd21e6b70de47ef45c882bbd0f55ce9aa603 /src/features/workspaces/store.js
parentignore intellij project files (diff)
downloadferdium-app-4a537e890d95e8666985ce77df4c6327582332be.tar.gz
ferdium-app-4a537e890d95e8666985ce77df4c6327582332be.tar.zst
ferdium-app-4a537e890d95e8666985ce77df4c6327582332be.zip
basic setup for workspaces feature
Diffstat (limited to 'src/features/workspaces/store.js')
-rw-r--r--src/features/workspaces/store.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js
new file mode 100644
index 000000000..4b4e729ed
--- /dev/null
+++ b/src/features/workspaces/store.js
@@ -0,0 +1,29 @@
1import { observable, reaction } from 'mobx';
2import Store from '../../stores/lib/Store';
3import CachedRequest from '../../stores/lib/CachedRequest';
4
5const debug = require('debug')('Franz:feature:workspaces');
6
7export default class WorkspacesStore extends Store {
8 @observable allWorkspacesRequest = new CachedRequest(this.api, 'getUserWorkspaces');
9
10 constructor(stores, api, actions, state) {
11 super(stores, api, actions);
12 this.state = state;
13 }
14
15 setup() {
16 debug('fetching user workspaces');
17 this.allWorkspacesRequest.execute();
18
19 reaction(
20 () => this.allWorkspacesRequest.result,
21 workspaces => this.setWorkspaces(workspaces),
22 );
23 }
24
25 setWorkspaces = (workspaces) => {
26 debug('setting user workspaces', workspaces.slice());
27 this.state.workspaces = workspaces;
28 };
29}