Use a single action for form placement

[MAILPOET-2740]
This commit is contained in:
Pavel Dohnal
2020-04-13 12:29:29 +02:00
committed by Veljko V
parent 734cc5a378
commit 39e228ba13
6 changed files with 22 additions and 158 deletions

View File

@@ -14,7 +14,7 @@ const BelowPages = () => {
const placeFormBellowAllPages = formSettings.placeFormBellowAllPages || false; const placeFormBellowAllPages = formSettings.placeFormBellowAllPages || false;
const placeFormBellowAllPosts = formSettings.placeFormBellowAllPosts || false; const placeFormBellowAllPosts = formSettings.placeFormBellowAllPosts || false;
const { setPlaceFormBellowAllPages, setPlaceFormBellowAllPosts } = useDispatch('mailpoet-form-editor'); const { changeFormSettings } = useDispatch('mailpoet-form-editor');
const [ const [
localPlaceFormBellowAllPages, localPlaceFormBellowAllPages,
@@ -26,8 +26,11 @@ const BelowPages = () => {
] = useState(placeFormBellowAllPosts); ] = useState(placeFormBellowAllPosts);
const save = () => { const save = () => {
setPlaceFormBellowAllPages(localPlaceFormBellowAllPages); changeFormSettings({
setPlaceFormBellowAllPosts(localPlaceFormBellowAllPosts); ...formSettings,
placeFormBellowAllPages: localPlaceFormBellowAllPages,
placeFormBellowAllPosts: localPlaceFormBellowAllPosts,
});
}; };
return ( return (

View File

@@ -21,12 +21,7 @@ const FixedBar = () => {
const placeFixedBarFormOnAllPages = formSettings.placeFixedBarFormOnAllPages || false; const placeFixedBarFormOnAllPages = formSettings.placeFixedBarFormOnAllPages || false;
const placeFixedBarFormOnAllPosts = formSettings.placeFixedBarFormOnAllPosts || false; const placeFixedBarFormOnAllPosts = formSettings.placeFixedBarFormOnAllPosts || false;
const { const { changeFormSettings } = useDispatch('mailpoet-form-editor');
setPlaceFixedBarFormOnAllPages,
setPlaceFixedBarFormOnAllPosts,
setFixedBarFormDelay,
setFixedBarFormPosition,
} = useDispatch('mailpoet-form-editor');
const [ const [
localPlaceFixedBarFormOnAllPages, localPlaceFixedBarFormOnAllPages,
@@ -46,10 +41,13 @@ const FixedBar = () => {
] = useState(fixedBarFormPosition); ] = useState(fixedBarFormPosition);
const save = () => { const save = () => {
setPlaceFixedBarFormOnAllPages(localPlaceFixedBarFormOnAllPages); changeFormSettings({
setPlaceFixedBarFormOnAllPosts(localPlaceFixedBarFormOnAllPosts); ...formSettings,
setFixedBarFormDelay(localDelay); placeFixedBarFormOnAllPages: localPlaceFixedBarFormOnAllPages,
setFixedBarFormPosition(localPosition); placeFixedBarFormOnAllPosts: localPlaceFixedBarFormOnAllPosts,
fixedBarFormDelay: localDelay,
fixedBarFormPosition: localPosition,
});
}; };
return ( return (

View File

@@ -16,15 +16,11 @@ const Popup = () => {
); );
const popupFormDelay = formSettings.popupFormDelay === undefined const popupFormDelay = formSettings.popupFormDelay === undefined
? 15 ? 15
: formSettings.fixedBarFormDelay; : formSettings.popupFormDelay;
const placePopupFormOnAllPages = formSettings.placePopupFormOnAllPages || false; const placePopupFormOnAllPages = formSettings.placePopupFormOnAllPages || false;
const placePopupFormOnAllPosts = formSettings.placePopupFormOnAllPosts || false; const placePopupFormOnAllPosts = formSettings.placePopupFormOnAllPosts || false;
const { const { changeFormSettings } = useDispatch('mailpoet-form-editor');
setPlacePopupFormOnAllPages,
setPlacePopupFormOnAllPosts,
setPopupFormDelay,
} = useDispatch('mailpoet-form-editor');
const [ const [
localPlacePopupFormOnAllPages, localPlacePopupFormOnAllPages,
@@ -40,9 +36,12 @@ const Popup = () => {
] = useState(popupFormDelay); ] = useState(popupFormDelay);
const save = () => { const save = () => {
setPlacePopupFormOnAllPages(localPlacePopupFormOnAllPages); changeFormSettings({
setPlacePopupFormOnAllPosts(localPlacePopupFormOnAllPosts); ...formSettings,
setPopupFormDelay(localDelay); placePopupFormOnAllPages: localPlacePopupFormOnAllPages,
placePopupFormOnAllPosts: localPlacePopupFormOnAllPosts,
popupFormDelay: localDelay,
});
}; };
return ( return (

View File

@@ -20,69 +20,6 @@ export function changeFormName(name) {
}; };
} }
export function setPlaceFormBellowAllPages(place) {
return {
type: 'PLACE_FORM_BELLOW_ALL_PAGES',
place,
};
}
export function setPlaceFormBellowAllPosts(place) {
return {
type: 'PLACE_FORM_BELLOW_ALL_POSTS',
place,
};
}
export function setPlacePopupFormOnAllPages(place) {
return {
type: 'PLACE_POPUP_FORM_ON_ALL_PAGES',
place,
};
}
export function setPlacePopupFormOnAllPosts(place) {
return {
type: 'PLACE_POPUP_FORM_ON_ALL_POSTS',
place,
};
}
export function setPopupFormDelay(delay) {
return {
type: 'SET_POPUP_FORM_DELAY',
delay,
};
}
export function setPlaceFixedBarFormOnAllPages(place) {
return {
type: 'PLACE_FIXED_BAR_FORM_ON_ALL_PAGES',
place,
};
}
export function setPlaceFixedBarFormOnAllPosts(place) {
return {
type: 'PLACE_FIXED_BAR_FORM_ON_ALL_POSTS',
place,
};
}
export function setFixedBarFormDelay(delay) {
return {
type: 'SET_FIXED_BAR_FORM_DELAY',
delay,
};
}
export function setFixedBarFormPosition(position) {
return {
type: 'SET_FIXED_BAR_FORM_POSITION',
position,
};
}
export function deleteCustomFieldStarted() { export function deleteCustomFieldStarted() {
return { return {
type: 'DELETE_CUSTOM_FIELD_STARTED', type: 'DELETE_CUSTOM_FIELD_STARTED',

View File

@@ -4,17 +4,6 @@ import createCustomFieldFailed from './reducers/create_custom_field_failed.jsx';
import customFieldEdited from './reducers/custom_field_edited.jsx'; import customFieldEdited from './reducers/custom_field_edited.jsx';
import createCustomFieldStartedFactory from './reducers/create_custom_field_started.jsx'; import createCustomFieldStartedFactory from './reducers/create_custom_field_started.jsx';
import changeFormName from './reducers/change_form_name.jsx'; import changeFormName from './reducers/change_form_name.jsx';
import {
placeFormBellowAllPages,
placeFormBellowAllPosts,
placePopupFormOnAllPages,
placePopupFormOnAllPosts,
setPopupFormDelay,
placeFixedBarFormOnAllPosts,
placeFixedBarFormOnAllPages,
setFixedBarFormDelay,
setFixedBarFormPosition,
} from './reducers/form_placement.jsx';
import changeFormSettings from './reducers/change_form_settings.jsx'; import changeFormSettings from './reducers/change_form_settings.jsx';
import changeFormStyles from './reducers/change_form_styles.jsx'; import changeFormStyles from './reducers/change_form_styles.jsx';
import removeNotice from './reducers/remove_notice.jsx'; import removeNotice from './reducers/remove_notice.jsx';
@@ -63,15 +52,6 @@ export default (defaultState) => (state = defaultState, action) => {
case 'DELETE_CUSTOM_FIELD_STARTED': return customFieldDeleteStart(state, action); case 'DELETE_CUSTOM_FIELD_STARTED': return customFieldDeleteStart(state, action);
case 'DELETE_CUSTOM_FIELD_DONE': return customFieldDeleteDone(state, action); case 'DELETE_CUSTOM_FIELD_DONE': return customFieldDeleteDone(state, action);
case 'DELETE_CUSTOM_FIELD_FAILED': return customFieldDeleteFailed(state, action); case 'DELETE_CUSTOM_FIELD_FAILED': return customFieldDeleteFailed(state, action);
case 'PLACE_FORM_BELLOW_ALL_PAGES': return placeFormBellowAllPages(state, action);
case 'PLACE_FORM_BELLOW_ALL_POSTS': return placeFormBellowAllPosts(state, action);
case 'PLACE_POPUP_FORM_ON_ALL_PAGES': return placePopupFormOnAllPages(state, action);
case 'PLACE_POPUP_FORM_ON_ALL_POSTS': return placePopupFormOnAllPosts(state, action);
case 'SET_POPUP_FORM_DELAY': return setPopupFormDelay(state, action);
case 'PLACE_FIXED_BAR_FORM_ON_ALL_PAGES': return placeFixedBarFormOnAllPages(state, action);
case 'PLACE_FIXED_BAR_FORM_ON_ALL_POSTS': return placeFixedBarFormOnAllPosts(state, action);
case 'SET_FIXED_BAR_FORM_DELAY': return setFixedBarFormDelay(state, action);
case 'SET_FIXED_BAR_FORM_POSITION': return setFixedBarFormPosition(state, action);
default: default:
return state; return state;
} }

View File

@@ -1,53 +0,0 @@
import { curry } from 'lodash';
const formPlacement = curry((placement, state, action) => ({
...state,
hasUnsavedChanges: true,
formData: {
...state.formData,
settings: {
...state.formData.settings,
[placement]: action.place,
},
},
}));
export const placeFormBellowAllPosts = formPlacement('placeFormBellowAllPosts');
export const placeFormBellowAllPages = formPlacement('placeFormBellowAllPages');
export const placePopupFormOnAllPages = formPlacement('placePopupFormOnAllPages');
export const placePopupFormOnAllPosts = formPlacement('placePopupFormOnAllPosts');
export const placeFixedBarFormOnAllPages = formPlacement('placeFixedBarFormOnAllPages');
export const placeFixedBarFormOnAllPosts = formPlacement('placeFixedBarFormOnAllPosts');
export const formPlacementDelay = curry((delayFormName, state, action) => ({
...state,
hasUnsavedChanges: true,
formData: {
...state.formData,
settings: {
...state.formData.settings,
[delayFormName]: action.delay,
},
},
}));
export const setPopupFormDelay = formPlacementDelay('popupFormDelay');
export const setFixedBarFormDelay = formPlacementDelay('fixedBarFormDelay');
export const setFixedBarFormPosition = (state, action) => ({
...state,
hasUnsavedChanges: true,
formData: {
...state.formData,
settings: {
...state.formData.settings,
fixedBarFormPosition: action.position,
},
},
});