Adding Prettier and fixing up eslint version
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / OnboardingReducers.js
index 16c0e61..9abae2d 100644 (file)
  * or implied. See the License for the specific language governing
  * permissions and limitations under the License.
  */
-import {actionTypes, enums} from './OnboardingConstants.js';
-import {actionTypes as permissionActionTypes} from './permissions/PermissionsConstants.js';
-import {actionTypes as licenseModelCreateActionTypes} from './licenseModel/creation/LicenseModelCreationConstants.js';
-import {actionTypes as softwareProductCreateActionTypes} from './softwareProduct/creation/SoftwareProductCreationConstants.js';
-import {actionTypes as versionCreateActionTypes} from './versionsPage/creation/VersionsPageCreationConstants.js';
-import {SyncStates} from 'sdc-app/common/merge/MergeEditorConstants.js';
-
-import {catalogItemStatuses} from './onboard/onboardingCatalog/OnboardingCatalogConstants.js';
+import { actionTypes, enums } from './OnboardingConstants.js';
+import { actionTypes as permissionActionTypes } from './permissions/PermissionsConstants.js';
+import { actionTypes as licenseModelCreateActionTypes } from './licenseModel/creation/LicenseModelCreationConstants.js';
+import { actionTypes as softwareProductCreateActionTypes } from './softwareProduct/creation/SoftwareProductCreationConstants.js';
+import { actionTypes as versionCreateActionTypes } from './versionsPage/creation/VersionsPageCreationConstants.js';
+import { SyncStates } from 'sdc-app/common/merge/MergeEditorConstants.js';
+
+import { catalogItemStatuses } from './onboard/onboardingCatalog/OnboardingCatalogConstants.js';
 import Configuration from 'sdc-app/config/Configuration.js';
 
-const checkReadOnly = ({isCollaborator = true, inMerge = false, isCertified = false, isArchived  = false}) => !isCollaborator || inMerge || isCertified || isArchived;
-
-const currentScreen = (state = {
-       forceBreadCrumbsUpdate: false,
-       screen: enums.SCREEN.ONBOARDING_CATALOG,
-       itemPermission: {},
-       props: {}
-}, action) => {
-
-       switch (action.type) {
-
-               case actionTypes.SET_CURRENT_SCREEN: {
-                       let itemPermission = {...state.itemPermission};
-                       let {currentScreen} = action;
-                       itemPermission.isArchived = currentScreen.props.status === catalogItemStatuses.ARCHIVED;
-
-                       if (currentScreen.props.version) {
-                               let {status} = currentScreen.props.version;
-                               itemPermission.isCertified = itemPermission.isCertified && status === catalogItemStatuses.CERTIFIED;
-                       }
-
-                       let isReadOnlyMode = checkReadOnly(itemPermission);
-                       let props = {...currentScreen.props, isReadOnlyMode};
-
-                       return {
-                               ...state,
-                               ...currentScreen,
-                               itemPermission,
-                               props
-                       };
-               }
-
-               case actionTypes.UPDATE_CURRENT_SCREEN_PROPS:
-                       return {
-                               ...state,
-                               props: {
-                                       ...state.props,
-                                       ...action.props,
-                                       isReadOnlyMode: checkReadOnly(state.itemPermission)
-                               }
-                       };
-
-               case actionTypes.SET_CURRENT_SCREEN_VERSION:
-                       return {
-                               ...state,
-                               props: {
-                                       ...state.props,
-                                       version: action.version,
-                                       isReadOnlyMode: checkReadOnly({...state.itemPermission,itemStatus: state.props.status})
-                               }
-                       };
-
-               case licenseModelCreateActionTypes.LICENSE_MODEL_CREATED:
-               case softwareProductCreateActionTypes.SOFTWARE_PRODUCT_CREATED:
-               case versionCreateActionTypes.VERSION_CREATED:
-                       return {
-                               ...state,
-                               itemPermission: {
-                                       isCollaborator: true,
-                                       inMerge: false,
-                                       isCertified: false
-                               },
-                               props: {
-                                       ...state.props,
-                                       isReadOnlyMode: false
-                               }
-                       };
-
-               case permissionActionTypes.ITEM_USERS_LOADED: {
-                       let userId = Configuration.get('UserID');
-                       let isCollaborator = false;
-
-                       if (userId === action.owner.userId) {
-                               isCollaborator = true;
-                       } else {
-                               isCollaborator = action.contributors.reduce(
-                                       (foundUser, contributor) => foundUser || contributor.userId === userId, false
-                               );
-                       }
-
-                       let itemPermission = {...state.itemPermission, isCollaborator};
-                       let isReadOnlyMode = checkReadOnly(itemPermission);
-                       let props = {...state.props, isReadOnlyMode};
-
-                       return {
-                               ...state,
-                               itemPermission,
-                               props
-                       };
-               }
-
-               case actionTypes.UPDATE_ITEM_STATUS: {
-                       const {itemState: {synchronizationState, dirty}, itemStatus, updatedVersion, archivedStatus} = action;
-                       const inMerge = synchronizationState === SyncStates.MERGE;
-                       const isOutOfSync = synchronizationState === SyncStates.OUT_OF_SYNC;
-                       const isUpToDate = synchronizationState === SyncStates.UP_TO_DATE;
-                       const isCertified = itemStatus === catalogItemStatuses.CERTIFIED;
-                       const isArchived = archivedStatus === catalogItemStatuses.ARCHIVED;
-                       const itemPermission = {...state.itemPermission, inMerge, isDirty: dirty, isOutOfSync, isUpToDate, isCertified, isArchived};
-                       const isReadOnlyMode = checkReadOnly(itemPermission);
-                       const props = {...state.props, isReadOnlyMode, version: {...state.props.version, ...updatedVersion}};
-
-                       return {
-                               ...state,
-                               itemPermission,
-                               props
-                       };
-               }
-
-               default:
-                       return state;
-
-       }
-
+const checkReadOnly = ({
+    isCollaborator = true,
+    inMerge = false,
+    isCertified = false,
+    isArchived = false
+}) => !isCollaborator || inMerge || isCertified || isArchived;
+
+const currentScreen = (
+    state = {
+        forceBreadCrumbsUpdate: false,
+        screen: enums.SCREEN.ONBOARDING_CATALOG,
+        itemPermission: {},
+        props: {}
+    },
+    action
+) => {
+    switch (action.type) {
+        case actionTypes.SET_CURRENT_SCREEN: {
+            let itemPermission = { ...state.itemPermission };
+            let { currentScreen } = action;
+            itemPermission.isArchived =
+                currentScreen.props.status === catalogItemStatuses.ARCHIVED;
+
+            if (currentScreen.props.version) {
+                let { status } = currentScreen.props.version;
+                itemPermission.isCertified =
+                    itemPermission.isCertified &&
+                    status === catalogItemStatuses.CERTIFIED;
+            }
+
+            let isReadOnlyMode = checkReadOnly(itemPermission);
+            let props = { ...currentScreen.props, isReadOnlyMode };
+
+            return {
+                ...state,
+                ...currentScreen,
+                itemPermission,
+                props
+            };
+        }
+
+        case actionTypes.UPDATE_CURRENT_SCREEN_PROPS:
+            return {
+                ...state,
+                props: {
+                    ...state.props,
+                    ...action.props,
+                    isReadOnlyMode: checkReadOnly(state.itemPermission)
+                }
+            };
+
+        case actionTypes.SET_CURRENT_SCREEN_VERSION:
+            return {
+                ...state,
+                props: {
+                    ...state.props,
+                    version: action.version,
+                    isReadOnlyMode: checkReadOnly({
+                        ...state.itemPermission,
+                        itemStatus: state.props.status
+                    })
+                }
+            };
+
+        case licenseModelCreateActionTypes.LICENSE_MODEL_CREATED:
+        case softwareProductCreateActionTypes.SOFTWARE_PRODUCT_CREATED:
+        case versionCreateActionTypes.VERSION_CREATED:
+            return {
+                ...state,
+                itemPermission: {
+                    isCollaborator: true,
+                    inMerge: false,
+                    isCertified: false
+                },
+                props: {
+                    ...state.props,
+                    isReadOnlyMode: false
+                }
+            };
+
+        case permissionActionTypes.ITEM_USERS_LOADED: {
+            let userId = Configuration.get('UserID');
+            let isCollaborator = false;
+
+            if (userId === action.owner.userId) {
+                isCollaborator = true;
+            } else {
+                isCollaborator = action.contributors.reduce(
+                    (foundUser, contributor) =>
+                        foundUser || contributor.userId === userId,
+                    false
+                );
+            }
+
+            let itemPermission = { ...state.itemPermission, isCollaborator };
+            let isReadOnlyMode = checkReadOnly(itemPermission);
+            let props = { ...state.props, isReadOnlyMode };
+
+            return {
+                ...state,
+                itemPermission,
+                props
+            };
+        }
+
+        case actionTypes.UPDATE_ITEM_STATUS: {
+            const {
+                itemState: { synchronizationState, dirty },
+                itemStatus,
+                updatedVersion,
+                archivedStatus
+            } = action;
+            const inMerge = synchronizationState === SyncStates.MERGE;
+            const isOutOfSync = synchronizationState === SyncStates.OUT_OF_SYNC;
+            const isUpToDate = synchronizationState === SyncStates.UP_TO_DATE;
+            const isCertified = itemStatus === catalogItemStatuses.CERTIFIED;
+            const isArchived = archivedStatus === catalogItemStatuses.ARCHIVED;
+            const itemPermission = {
+                ...state.itemPermission,
+                inMerge,
+                isDirty: dirty,
+                isOutOfSync,
+                isUpToDate,
+                isCertified,
+                isArchived
+            };
+            const isReadOnlyMode = checkReadOnly(itemPermission);
+            const props = {
+                ...state.props,
+                isReadOnlyMode,
+                version: { ...state.props.version, ...updatedVersion }
+            };
+
+            return {
+                ...state,
+                itemPermission,
+                props
+            };
+        }
+
+        default:
+            return state;
+    }
 };
 
 export default currentScreen;