Use different functions for dismissible and non dismissible notices

[MAILPOET-2450]
This commit is contained in:
Rostislav Wolny
2019-11-05 12:37:41 +01:00
committed by Jack Kitterhing
parent 8aef0d3b74
commit cd3f039958
4 changed files with 23 additions and 14 deletions

View File

@@ -4,11 +4,11 @@ import { useDispatch, useSelect } from '@wordpress/data';
export default () => {
const dismissibleNotices = useSelect(
(select) => select('mailpoet-form-editor').getNotices(true),
(select) => select('mailpoet-form-editor').getDismissibleNotices(),
[]
);
const nonDismissibleNotices = useSelect(
(select) => select('mailpoet-form-editor').getNotices(),
(select) => select('mailpoet-form-editor').getNonDismissibleNotices(),
[]
);

View File

@@ -20,14 +20,20 @@ export function saveFormDone(result) {
};
}
export function addNotice(content, status, isDismissible = false, id = null) {
return {
type: 'ADD_NOTICE',
content,
status,
isDismissible,
id,
};
const createAddNoticeAction = (content, status, isDismissible, id) => ({
type: 'ADD_NOTICE',
content,
status,
isDismissible,
id,
});
export function addNotice(content, status, id) {
return createAddNoticeAction(content, status, false, id);
}
export function addDismissibleNotice(content, status, id) {
return createAddNoticeAction(content, status, true, id);
}
export function removeNotice(id) {

View File

@@ -11,14 +11,14 @@ export default {
data: formData,
}).done(() => {
dispatch('mailpoet-form-editor').saveFormDone();
dispatch('mailpoet-form-editor').addNotice(MailPoet.I18n.t('formSaved'), 'success', true, 'save-form');
dispatch('mailpoet-form-editor').addDismissibleNotice(MailPoet.I18n.t('formSaved'), 'success', 'save-form');
}).fail((response) => {
let errorMessage = null;
if (response.errors.length > 0) {
errorMessage = response.errors.map((error) => (error.message));
}
dispatch('mailpoet-form-editor').saveFormDone();
dispatch('mailpoet-form-editor').addNotice(errorMessage, 'error', true, 'save-form');
dispatch('mailpoet-form-editor').addDismissibleNotice(errorMessage, 'error', 'save-form');
});
},
};

View File

@@ -11,7 +11,10 @@ export default {
getIsFormSaving(state) {
return state.isFormSaving;
},
getNotices(state, dismissible = false) {
return state.notices.filter((notice) => notice.isDismissible === dismissible);
getDismissibleNotices(state) {
return state.notices.filter((notice) => notice.isDismissible === true);
},
getNonDismissibleNotices(state) {
return state.notices.filter((notice) => notice.isDismissible === false);
},
};