From 0548dfe0e6316c5c8a26926f5522dabe34a17757 Mon Sep 17 00:00:00 2001 From: Maksim Sviridov Date: Thu, 6 Jul 2023 13:54:10 +0300 Subject: [PATCH] fix(GoalDependencies): refactor form component state --- .../GoalDependencyForm/GoalDependencyForm.tsx | 38 +++---- src/components/GoalSuggest.tsx | 98 +++++++++---------- 2 files changed, 64 insertions(+), 72 deletions(-) diff --git a/src/components/GoalDependencyForm/GoalDependencyForm.tsx b/src/components/GoalDependencyForm/GoalDependencyForm.tsx index 93f4cd5e1..32da3f856 100644 --- a/src/components/GoalDependencyForm/GoalDependencyForm.tsx +++ b/src/components/GoalDependencyForm/GoalDependencyForm.tsx @@ -36,7 +36,7 @@ interface GoalDependencyAddFormProps { export const GoalDependencyAddForm: React.FC = ({ goalId, kind, isEmpty, onSubmit }) => { const [selected, setSelected] = useState(null); - const [query, setQuery] = useState(['']); + const [query, setQuery] = useState(''); const { register, handleSubmit, @@ -55,7 +55,7 @@ export const GoalDependencyAddForm: React.FC = ({ go const resetFormHandler = useCallback(() => { setSelected(null); - setQuery(['']); + setQuery(''); reset({ relation: { id: '' }, @@ -71,19 +71,17 @@ export const GoalDependencyAddForm: React.FC = ({ go }, [selected, setValue]); const handleInputChange = useCallback>((event) => { - setQuery([event.target.value]); + setQuery(event.target.value); }, []); const handleGoalSelect = useCallback((goal: NonNullable) => { setSelected(goal); - setQuery([goal.projectId!, String(goal.scopeId)]); + setQuery(`${goal.projectId!}-${goal.scopeId}`); }, []); useEffect(() => { - if (selected) { - if (query[0] !== selected.projectId || query[1] !== String(selected.scopeId)) { - resetFormHandler(); - } + if (selected && query !== `${selected.projectId!}-${selected.scopeId}`) { + resetFormHandler(); } }, [query, selected, resetFormHandler]); @@ -109,20 +107,16 @@ export const GoalDependencyAddForm: React.FC = ({ go onSubmit={handleSubmit(onSubmit)} onReset={resetFormHandler} > - ( - - )} - value={query.join('-')} - onChange={handleGoalSelect} - /> + + +