aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/apps/configurationApp/src/handlers/viewDescriptionHandler.ts
blob: 48155ee1ef78996f8f2cf45e2715486b2d29a6e4 (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
30
31
32
33
34
35
36
37
38
39
40
41
42
import { IActionHandler } from "../../../../framework/src/flux/action";

import { UpdatViewDescription } from "../actions/deviceActions";
import { ViewSpecification } from "../models/uiModels";

export interface IViewDescriptionState {
  vPath: string | null;
  keyProperty: string | undefined;
  displayAsList: boolean;
  viewSpecification: ViewSpecification;
  viewData: any
}

const viewDescriptionStateInit: IViewDescriptionState = {
  vPath: null,
  keyProperty: undefined,
  displayAsList: false,
  viewSpecification: {
    id: "empty",
    canEdit: false,
    parentView: "",
    name: "emplty",
    language: "en-US",
    title: "empty",
    elements: {}
  },
  viewData: null
};

export const viewDescriptionHandler: IActionHandler<IViewDescriptionState> = (state = viewDescriptionStateInit, action) => {
  if (action instanceof UpdatViewDescription) {
    state = {
      ...state,
      vPath: action.vPath,
      keyProperty: action.key,
      displayAsList: action.displayAsList,
      viewSpecification: action.view,
      viewData: action.viewData,
    }
  }
  return state;
};