blob: 2b6d55cc77e26771f91dba52360148e9ca329258 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import { observable, reaction } from 'mobx';
import Store from '../../stores/lib/Store';
import CachedRequest from '../../stores/lib/CachedRequest';
import Workspace from '../../models/Workspace';
const debug = require('debug')('Franz:feature:workspaces');
export default class WorkspacesStore extends Store {
@observable allWorkspacesRequest = new CachedRequest(this.api, 'getUserWorkspaces');
constructor(stores, api, actions, state) {
super(stores, api, actions);
this.state = state;
}
setup() {
debug('fetching user workspaces');
this.allWorkspacesRequest.execute();
reaction(
() => this.allWorkspacesRequest.result,
workspaces => this._setWorkspaces(workspaces),
);
reaction(
() => this.allWorkspacesRequest.isExecuting,
isExecuting => this._setIsLoading(isExecuting),
);
}
_setWorkspaces = (workspaces) => {
debug('setting user workspaces', workspaces.slice());
this.state.workspaces = workspaces.map(data => new Workspace(data));
};
_setIsLoading = (isLoading) => {
this.state.isLoading = isLoading;
};
}
|