e59337c1229e8bb17afee11c255341440c4f65f6
[sdc.git] /
1 /*!
2  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13  * or implied. See the License for the specific language governing
14  * permissions and limitations under the License.
15  */
16 import { actionTypes, forms } from './SoftwareProductComponentsConstants.js';
17
18 export default (state = {}, action) => {
19     switch (action.type) {
20         case actionTypes.COMPONENT_CREATE_OPEN:
21             return {
22                 ...state,
23                 formName: forms.CREATE_FORM,
24                 formReady: null,
25                 genericFieldInfo: {
26                     displayName: {
27                         isValid: true,
28                         errorText: '',
29                         validations: [
30                             { type: 'required', data: true },
31                             { type: 'validateName', data: true },
32                             { type: 'maxLength', data: 25 }
33                         ]
34                     },
35                     description: {
36                         isValid: true,
37                         errorText: '',
38                         validations: [{ type: 'maxLength', data: 1000 }]
39                     }
40                 }
41             };
42         case actionTypes.COMPONENT_LOAD:
43             return {
44                 ...state,
45                 data: action.component,
46                 formReady: null,
47                 formName: forms.ALL_SPC_FORMS,
48                 genericFieldInfo: {
49                     displayName: {
50                         isValid: true,
51                         errorText: '',
52                         validations: []
53                     },
54                     vfcCode: {
55                         isValid: true,
56                         errorText: '',
57                         validations: []
58                     },
59                     nfcFunction: {
60                         isValid: true,
61                         errorText: '',
62                         validations: [{ type: 'maxLength', data: 30 }]
63                     },
64                     description: {
65                         isValid: true,
66                         errorText: '',
67                         validations: []
68                     }
69                 }
70             };
71         case actionTypes.COMPONENT_UPDATE:
72             return {
73                 ...state,
74                 data: action.component
75             };
76         case actionTypes.COMPONENT_QUESTIONNAIRE_UPDATE:
77             return {
78                 ...state,
79                 qdata: action.payload.qdata || state.qdata,
80                 qschema: action.payload.qschema || state.qschema
81             };
82         case actionTypes.COMPONENT_DATA_CHANGED:
83             return {
84                 ...state,
85                 data: {
86                     ...state.data,
87                     ...action.deltaData
88                 }
89             };
90         case actionTypes.COMPONENT_DATA_CLEAR:
91             return {};
92         default:
93             return state;
94     }
95 };