Add loading when selecting form template

[MAILPOET-2988]
This commit is contained in:
Rostislav Wolny
2020-09-29 15:56:18 +02:00
committed by Veljko V
parent e1599ee7b2
commit acf372b148
5 changed files with 20 additions and 0 deletions

View File

@ -3,6 +3,7 @@ import MailPoet from 'mailpoet';
import { useSelect, useDispatch } from '@wordpress/data';
import Categories from 'common/categories/categories';
import Background from 'common/background/background';
import Loading from 'common/loading';
import Heading from 'common/typography/heading/heading';
import { TemplateData } from './store/types';
import TemplateBox from './components/template_box';
@ -38,6 +39,11 @@ export default () => {
[]
);
const loading: boolean = useSelect(
(select) => select('mailpoet-form-editor-templates').getLoading(),
[]
);
// const selectTemplateFailed: boolean = useSelect(
// (select) => select('mailpoet-form-editor-templates').getSelectTemplateFailed(),
// []
@ -71,6 +77,7 @@ export default () => {
))}
</div>
</div>
{loading && <Loading />}
</>
);
};

View File

@ -2,6 +2,7 @@ import { select } from '@wordpress/data';
// eslint-disable-next-line import/prefer-default-export
export function* selectTemplate(templateId) {
yield { type: 'SELECT_TEMPLATE_START' };
const { res, success, error } = yield {
type: 'CALL_API',
endpoint: 'forms',

View File

@ -1,11 +1,19 @@
export const selectTemplateFailed = (state) => ({
...state,
selectTemplateFailed: true,
loading: false,
});
export const selectTemplateStarted = (state) => ({
...state,
selectTemplateFailed: false,
loading: true,
});
export default (defaultState: object) => (state = defaultState, action) => {
switch (action.type) {
case 'SELECT_TEMPLATE_ERROR': return selectTemplateFailed(state);
case 'SELECT_TEMPLATE_START': return selectTemplateStarted(state);
default:
return state;
}

View File

@ -10,4 +10,7 @@ export default {
getSelectTemplateFailed(state): boolean {
return state.selectTemplateFailed;
},
getLoading(state): boolean {
return state.loading;
},
};

View File

@ -13,6 +13,7 @@ export default () => {
templates: (window as any).mailpoet_templates,
formEditorUrl: (window as any).mailpoet_form_edit_url,
selectTemplateFailed: false,
loading: false,
};
const config = {