summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/serverless/stores/serverless_store.js
blob: 816d55a03f94d09ca761f27113102a9f0a0af560 (plain)
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
export default class ServerlessStore {
  constructor(knativeInstalled = false, clustersPath, helpPath) {
    this.state = {
      functions: {},
      hasFunctionData: true,
      loadingData: true,
      installed: knativeInstalled,
      clustersPath,
      helpPath,
    };
  }

  updateFunctionsFromServer(upstreamFunctions = []) {
    this.state.functions = upstreamFunctions.reduce((rv, func) => {
      const envs = rv;
      envs[func.environment_scope] = (rv[func.environment_scope] || []).concat([func]);

      return envs;
    }, {});
  }

  updateLoadingState(loadingData) {
    this.state.loadingData = loadingData;
  }

  toggleNoFunctionData() {
    this.state.hasFunctionData = false;
  }
}