/
types.ts
112 lines (104 loc) · 3.83 KB
/
types.ts
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import { ValidationObject } from '@console/shared';
import {
ChangedCommonData,
ChangedCommonDataProp,
CloudInitField,
VMImportProvider,
VMSettingsField,
VMSettingsFieldType,
VMWareProviderField,
VMWizardNetwork,
VMWizardStorage,
VMWizardTab,
} from '../types';
import { DeviceType } from '../../../constants/vm';
export enum ActionType {
Create = 'KubevirtVMWizardExternalCreate',
Dispose = 'KubevirtVMWiExternalDispose',
UpdateCommonData = 'KubevirtVMWizardExternalUpdateCommonData',
SetVmSettingsFieldValue = 'KubevirtVMWizardExternalSetVmSettingsFieldValue',
UpdateVmSettingsProviderField = 'KubevirtVMWizardExternalUpdateVmSettingsProviderField',
SetCloudInitFieldValue = 'KubevirtVMWizardExternalSetCloudInitFieldValue',
SetTabLocked = 'KubevirtVMWizardExternalSetTabLocked',
RemoveNIC = 'KubevirtVMWizardExternalRemoveNIC',
UpdateNIC = 'KubevirtVMWizardExternalUpdateNIC',
SetDeviceBootOrder = 'KubevirtVMWizardExternalSetDeviceBootOrder',
RemoveStorage = 'KubevirtVMWizardExternalRemoveStorage',
UpdateStorage = 'KubevirtVMWizardExternalUpdateStorage',
SetResults = 'KubevirtVMWizardExternalSetResults',
}
// should not be called directly from outside redux code (e.g. stateUpdate)
export enum InternalActionType {
Create = 'KubevirtVMWizardCreate',
Dispose = 'KubevirtVMWizardDispose',
Update = 'KubevirtVMWizardUpdate',
UpdateCommonData = 'KubevirtVMWizardUpdateCommonData',
SetTabValidity = 'KubevirtVMWizardSetTabValidity',
SetTabLocked = 'KubevirtVMWizardSetTabLocked',
SetVmSettingsFieldValue = 'KubevirtVMWizardSetVmSettingsFieldValue',
UpdateVMSettingsProviderField = 'KubevirtVMWizardUpdateVmSettingsProviderField',
UpdateVMSettingsProvider = 'KubevirtVMWizardUpdateVmSettingsProvider',
SetCloudInitFieldValue = 'KubevirtVMWizardSetCloudInitFieldValue',
SetInVmSettings = 'KubevirtVMWizardSetInVmSettings',
SetInVmSettingsBatch = 'KubevirtVMWizardSetInVmSettingsBatch',
UpdateVmSettingsField = 'KubevirtVMWizardUpdateVmSettingsField',
UpdateVmSettings = 'KubevirtVMWizardUpdateVmSettings',
RemoveNIC = 'KubevirtVMWizardRemoveNIC',
UpdateNIC = 'KubevirtVMWizardUpdateNIC',
SetDeviceBootOrder = 'KubevirtVMWizardSetDeviceBootOrder',
RemoveStorage = 'KubevirtVMWizardRemoveStorage',
UpdateStorage = 'KubevirtVMWizardUpdateStorage',
SetNetworks = 'KubevirtVMWizardSetNetworks',
SetStorages = 'KubevirtVMWizardSetStorages',
SetResults = 'KubevirtVMWizardSetResults',
}
export type WizardInternalAction = {
type: InternalActionType;
payload: {
id: string;
value?: any;
isValid?: boolean;
isLocked?: boolean;
isPending?: boolean;
hasAllRequiredFilled?: boolean;
path?: string[];
key?: VMSettingsField | CloudInitField | VMWareProviderField;
provider?: VMImportProvider;
tab?: VMWizardTab;
batch?: ActionBatch;
network?: VMWizardNetwork;
networkID?: string;
storage?: VMWizardStorage;
storageID?: string;
deviceID?: string;
deviceType?: DeviceType;
bootOrder?: number;
error?: string;
};
};
export type WizardInternalActionDispatcher = (id: string, ...any) => WizardInternalAction;
export type WizardActionDispatcher = (
id: string,
...any
) => (dispatch: Function, getState: Function) => void;
export type ActionBatch = { path: string[]; value: any }[];
export type UpdateOptions = {
id: string;
changedCommonData: ChangedCommonData;
dispatch: Function;
getState: Function;
prevState: any;
};
export type VmSettingsValidator = (
field: VMSettingsFieldType,
options: UpdateOptions,
) => ValidationObject;
export type VMSettingsValidationConfig = {
[key: string]: {
detectValueChanges?: ((field, options) => VMSettingsField[]) | VMSettingsField[];
detectCommonDataChanges?:
| ((field, options) => ChangedCommonDataProp[])
| ChangedCommonDataProp[];
validator: VmSettingsValidator;
};
};