diff --git a/assets/js/src/form_editor/store/reducer.jsx b/assets/js/src/form_editor/store/reducer.jsx index 7e51296864..d5b1082251 100644 --- a/assets/js/src/form_editor/store/reducer.jsx +++ b/assets/js/src/form_editor/store/reducer.jsx @@ -1,49 +1,18 @@ -const addNotice = (state, action) => { - const notices = state.notices.filter((item) => item.id !== action.id); - const notice = { - id: action.id ? action.id : Math.random().toString(36).substr(2, 9), - content: action.content, - isDismissible: action.isDismissible, - status: action.status, - }; - return { - ...state, - notices: [...notices, notice], - }; -}; +import addNotice from './reducers/addNotice.jsx'; +import toggleSidebar from './reducers/toggleSidebar.jsx'; +import changeFormName from './reducers/changeFormName.jsx'; +import saveFormStarted from './reducers/saveFormStarted.jsx'; +import saveFormDone from './reducers/saveFormDone.jsx'; +import removeNotice from './reducers/removeNotice.jsx'; export default (defaultState) => (state = defaultState, action) => { switch (action.type) { - case 'TOGGLE_SIDEBAR': - return { - ...state, - sidebarOpened: action.toggleTo, - }; - case 'CHANGE_FORM_NAME': - return { - ...state, - formData: { - ...state.formData, - name: action.name, - }, - }; - case 'SAVE_FORM_STARTED': - return { - ...state, - isFormSaving: true, - }; - case 'SAVE_FORM_DONE': - return { - ...state, - isFormSaving: false, - }; - case 'ADD_NOTICE': - return addNotice(state, action); - case 'REMOVE_NOTICE': - return { - ...state, - notices: [...state.notices].filter((item) => item.id !== action.id), - }; + case 'ADD_NOTICE': return addNotice(state, action); + case 'CHANGE_FORM_NAME': return changeFormName(state, action); + case 'REMOVE_NOTICE': return removeNotice(state, action); + case 'SAVE_FORM_DONE': return saveFormDone(state); + case 'SAVE_FORM_STARTED': return saveFormStarted(state); + case 'TOGGLE_SIDEBAR': return toggleSidebar(state, action); default: return state; } diff --git a/assets/js/src/form_editor/store/reducers/addNotice.jsx b/assets/js/src/form_editor/store/reducers/addNotice.jsx new file mode 100644 index 0000000000..4debb8ca68 --- /dev/null +++ b/assets/js/src/form_editor/store/reducers/addNotice.jsx @@ -0,0 +1,13 @@ +export default (state, action) => { + const notices = state.notices.filter((item) => item.id !== action.id); + const notice = { + id: action.id ? action.id : Math.random().toString(36).substr(2, 9), + content: action.content, + isDismissible: action.isDismissible, + status: action.status, + }; + return { + ...state, + notices: [...notices, notice], + }; +}; diff --git a/assets/js/src/form_editor/store/reducers/changeFormName.jsx b/assets/js/src/form_editor/store/reducers/changeFormName.jsx new file mode 100644 index 0000000000..55637a413c --- /dev/null +++ b/assets/js/src/form_editor/store/reducers/changeFormName.jsx @@ -0,0 +1,7 @@ +export default (state, action) => ({ + ...state, + formData: { + ...state.formData, + name: action.name, + }, +}); diff --git a/assets/js/src/form_editor/store/reducers/removeNotice.jsx b/assets/js/src/form_editor/store/reducers/removeNotice.jsx new file mode 100644 index 0000000000..bfa5b5b4a1 --- /dev/null +++ b/assets/js/src/form_editor/store/reducers/removeNotice.jsx @@ -0,0 +1,4 @@ +export default (state, action) => ({ + ...state, + notices: [...state.notices].filter((item) => item.id !== action.id), +}); diff --git a/assets/js/src/form_editor/store/reducers/saveFormDone.jsx b/assets/js/src/form_editor/store/reducers/saveFormDone.jsx new file mode 100644 index 0000000000..fed2ac60d6 --- /dev/null +++ b/assets/js/src/form_editor/store/reducers/saveFormDone.jsx @@ -0,0 +1,4 @@ +export default (state) => ({ + ...state, + isFormSaving: false, +}); diff --git a/assets/js/src/form_editor/store/reducers/saveFormStarted.jsx b/assets/js/src/form_editor/store/reducers/saveFormStarted.jsx new file mode 100644 index 0000000000..2d63739e82 --- /dev/null +++ b/assets/js/src/form_editor/store/reducers/saveFormStarted.jsx @@ -0,0 +1,4 @@ +export default (state) => ({ + ...state, + isFormSaving: true, +}); diff --git a/assets/js/src/form_editor/store/reducers/toggleSidebar.jsx b/assets/js/src/form_editor/store/reducers/toggleSidebar.jsx new file mode 100644 index 0000000000..15fc5f6e87 --- /dev/null +++ b/assets/js/src/form_editor/store/reducers/toggleSidebar.jsx @@ -0,0 +1,4 @@ +export default (state, action) => ({ + ...state, + sidebarOpened: action.toggleTo, +});