keep modal open on error, utilize useEffect (#12360)

This commit is contained in:
Moriah Kreeger 2021-01-13 10:53:31 -08:00 committed by GitHub
parent 908c0f2b52
commit 628a9b2b7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -110,7 +110,11 @@ const CssTemplateModal: FunctionComponent<CssTemplateModalProps> = ({
const update_id = currentCssTemplate.id; const update_id = currentCssTemplate.id;
delete currentCssTemplate.id; delete currentCssTemplate.id;
delete currentCssTemplate.created_by; delete currentCssTemplate.created_by;
updateResource(update_id, currentCssTemplate).then(() => { updateResource(update_id, currentCssTemplate).then(response => {
if (!response) {
return;
}
if (onCssTemplateAdd) { if (onCssTemplateAdd) {
onCssTemplateAdd(); onCssTemplateAdd();
} }
@ -120,7 +124,11 @@ const CssTemplateModal: FunctionComponent<CssTemplateModalProps> = ({
} }
} else if (currentCssTemplate) { } else if (currentCssTemplate) {
// Create // Create
createResource(currentCssTemplate).then(() => { createResource(currentCssTemplate).then(response => {
if (!response) {
return;
}
if (onCssTemplateAdd) { if (onCssTemplateAdd) {
onCssTemplateAdd(); onCssTemplateAdd();
} }
@ -166,6 +174,7 @@ const CssTemplateModal: FunctionComponent<CssTemplateModalProps> = ({
}; };
// Initialize // Initialize
useEffect(() => {
if ( if (
isEditMode && isEditMode &&
(!currentCssTemplate || (!currentCssTemplate ||
@ -176,9 +185,7 @@ const CssTemplateModal: FunctionComponent<CssTemplateModalProps> = ({
if (cssTemplate && cssTemplate.id !== null && !loading) { if (cssTemplate && cssTemplate.id !== null && !loading) {
const id = cssTemplate.id || 0; const id = cssTemplate.id || 0;
fetchResource(id).then(() => { fetchResource(id);
setCurrentCssTemplate(resource);
});
} }
} else if ( } else if (
!isEditMode && !isEditMode &&
@ -189,6 +196,13 @@ const CssTemplateModal: FunctionComponent<CssTemplateModalProps> = ({
css: '', css: '',
}); });
} }
}, [cssTemplate]);
useEffect(() => {
if (resource) {
setCurrentCssTemplate(resource);
}
}, [resource]);
// Validation // Validation
useEffect(() => { useEffect(() => {