import { actualAttributes, actualAttributesT } from './../../utils/constants'; import { TYPE_REDUCER } from '../../utils/constants'; import priceId from '../../../products.json'; import priceAdditional from '../../../productsAdditional.json'; export type modalName = | 'arStep1' | 'itemHint' | 'MailComponent' | 'MailSent' | 'loader'; export type modalListT = Record; export type initialStateT = { configInfo: { isShortId: boolean; attributeIsActive: any; }; modalState: { modalInfo: null; modalList: modalListT; }; attributes: {}; priceInfo: {}; priceAdditional: {}; }; const initialState: initialStateT = { configInfo: { isShortId: false, attributeIsActive: undefined, }, modalState: { modalInfo: null, modalList: { arStep1: false, itemHint: false, MailComponent: false, MailSent: false, loader: false, }, }, attributes: {}, priceInfo: priceId, priceAdditional: priceAdditional, }; const Settings = (state: any = initialState, action: any) => { switch (action.type) { case TYPE_REDUCER.EXAMPLE_ACTION: return { ...state, example: action.payload, }; case TYPE_REDUCER.SET_MODAL: return { ...state, modalState: { modalInfo: action.payload.info || null, modalList: { ...state.modalState.modalList, ...action.payload.list, }, }, }; case TYPE_REDUCER.SET_ATTRIBUTES: return { ...state, attributes: action.payload, }; case TYPE_REDUCER.SET_PRICE_INFO: return { ...state, priceInfo: action.payload, }; case TYPE_REDUCER.SET_IS_SHORT_ID: return { ...state, configInfo: { ...state.configInfo, isShortId: action.payload, }, }; case TYPE_REDUCER.SET_IS_CUSTOM_ATTR: return { ...state, configInfo: { ...state.configInfo, attributeIsActive: action.payload, }, }; case TYPE_REDUCER.SET_ACTIVE_ITEM: const { name, data }: any = action.payload; return { ...state, attributes: { ...state.attributes, [name]: { ...state.attributes[name], ...data, }, }, }; default: return state; } }; export default Settings;