1 import { IActionHandler } from "../../../../framework/src/flux/action";
2 import { ViewSpecification } from "../models/uiModels";
3 import { EnableValueSelector, SetSelectedValue, UpdateDeviceDescription, SetCollectingSelectionData, UpdatViewDescription } from "../actions/deviceActions";
5 export interface IValueSelectorState {
6 collectingData: boolean;
7 keyProperty: string | undefined;
8 listSpecification: ViewSpecification | null;
10 onValueSelected: (value: any) => void;
13 const nc = (val: React.SyntheticEvent) => { };
14 const valueSelectorStateInit: IValueSelectorState = {
15 collectingData: false,
16 keyProperty: undefined,
17 listSpecification: null,
22 export const valueSelectorHandler: IActionHandler<IValueSelectorState> = (state = valueSelectorStateInit, action) => {
23 if (action instanceof SetCollectingSelectionData) {
26 collectingData: action.busy,
28 } else if (action instanceof EnableValueSelector) {
31 collectingData: false,
32 keyProperty: action.keyProperty,
33 listSpecification: action.listSpecification,
34 onValueSelected: action.onValueSelected,
35 listData: action.listData,
37 } else if (action instanceof SetSelectedValue) {
38 state.keyProperty && state.onValueSelected(action.value[state.keyProperty]);
41 collectingData: false,
42 keyProperty: undefined,
43 listSpecification: null,
47 } else if (action instanceof UpdateDeviceDescription || action instanceof UpdatViewDescription) {
50 collectingData: false,
51 keyProperty: undefined,
52 listSpecification: null,