From 3391affb721c3994a492ea9fc9a8cf871d4256c1 Mon Sep 17 00:00:00 2001 From: IRBorisov <8611739+IRBorisov@users.noreply.github.com> Date: Thu, 23 May 2024 13:06:23 +0300 Subject: [PATCH] Fix Create from template --- .../DlgConstituentaTemplate.tsx | 13 ++++++------- .../src/dialogs/DlgCreateCst/FormCreateCst.tsx | 6 ++++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/rsconcept/frontend/src/dialogs/DlgConstituentaTemplate/DlgConstituentaTemplate.tsx b/rsconcept/frontend/src/dialogs/DlgConstituentaTemplate/DlgConstituentaTemplate.tsx index 896e45df..7921c805 100644 --- a/rsconcept/frontend/src/dialogs/DlgConstituentaTemplate/DlgConstituentaTemplate.tsx +++ b/rsconcept/frontend/src/dialogs/DlgConstituentaTemplate/DlgConstituentaTemplate.tsx @@ -12,7 +12,7 @@ import AnimateFade from '@/components/wrap/AnimateFade'; import usePartialUpdate from '@/hooks/usePartialUpdate'; import { HelpTopic } from '@/models/miscellaneous'; import { CstType, ICstCreateData, IRSForm } from '@/models/rsform'; -import { generateAlias } from '@/models/rsformAPI'; +import { generateAlias, validateNewAlias } from '@/models/rsformAPI'; import { inferTemplatedType, substituteTemplateArgs } from '@/models/rslangAPI'; import FormCreateCst from '../DlgCreateCst/FormCreateCst'; @@ -101,6 +101,10 @@ function DlgConstituentaTemplate({ hideWindow, schema, onCreate, insertAfter }: }); }, [substitutes.arguments, template.prototype, updateConstituenta, updateSubstitutes]); + useLayoutEffect(() => { + setValidated(!!template.prototype && validateNewAlias(constituenta.alias, constituenta.cst_type, schema)); + }, [constituenta.alias, constituenta.cst_type, schema, template.prototype]); + const templatePanel = useMemo( () => ( @@ -123,12 +127,7 @@ function DlgConstituentaTemplate({ hideWindow, schema, onCreate, insertAfter }: () => ( - + ), diff --git a/rsconcept/frontend/src/dialogs/DlgCreateCst/FormCreateCst.tsx b/rsconcept/frontend/src/dialogs/DlgCreateCst/FormCreateCst.tsx index e1a6f031..ac08bb2f 100644 --- a/rsconcept/frontend/src/dialogs/DlgCreateCst/FormCreateCst.tsx +++ b/rsconcept/frontend/src/dialogs/DlgCreateCst/FormCreateCst.tsx @@ -20,7 +20,7 @@ interface FormCreateCstProps { state: ICstCreateData; partialUpdate: React.Dispatch>; - setValidated: React.Dispatch>; + setValidated?: React.Dispatch>; } function FormCreateCst({ schema, state, partialUpdate, setValidated }: FormCreateCstProps) { @@ -36,7 +36,9 @@ function FormCreateCst({ schema, state, partialUpdate, setValidated }: FormCreat }, [state.cst_type, partialUpdate, schema]); useLayoutEffect(() => { - setValidated(validateNewAlias(state.alias, state.cst_type, schema)); + if (setValidated) { + setValidated(validateNewAlias(state.alias, state.cst_type, schema)); + } }, [state.alias, state.cst_type, schema, setValidated]); return (