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
1 changed files with 36 additions and 22 deletions

View File

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