From 9f0f5b0c1d97c9af994b61fb10beb68acb8260b4 Mon Sep 17 00:00:00 2001 From: abdou6666 Date: Mon, 5 May 2025 11:57:49 +0100 Subject: [PATCH] fix: nlp edit sample frontend --- .../nlp/components/NlpSampleForm.tsx | 8 +++++-- .../nlp/components/NlpTrainForm.tsx | 23 ++++++++++++------- frontend/src/components/nlp/index.tsx | 7 ++++-- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/frontend/src/components/nlp/components/NlpSampleForm.tsx b/frontend/src/components/nlp/components/NlpSampleForm.tsx index b60fc174..e3afa999 100644 --- a/frontend/src/components/nlp/components/NlpSampleForm.tsx +++ b/frontend/src/components/nlp/components/NlpSampleForm.tsx @@ -29,7 +29,7 @@ export const NlpSampleForm: FC> = ({ }) => { const { t } = useTranslate(); const { toast } = useToast(); - const { mutate: updateSample } = useUpdate< + const { mutate: updateSample, isLoading: isUpdatingSample } = useUpdate< EntityType.NLP_SAMPLE, INlpDatasetSampleAttributes >(EntityType.NLP_SAMPLE, { @@ -63,7 +63,11 @@ export const NlpSampleForm: FC> = ({ return ( {}} {...WrapperProps}> - + {" "} ); }; diff --git a/frontend/src/components/nlp/components/NlpTrainForm.tsx b/frontend/src/components/nlp/components/NlpTrainForm.tsx index 470124a3..41ed5f5c 100644 --- a/frontend/src/components/nlp/components/NlpTrainForm.tsx +++ b/frontend/src/components/nlp/components/NlpTrainForm.tsx @@ -49,11 +49,13 @@ import { INlpValue } from "@/types/nlp-value.types"; type NlpDatasetSampleProps = { sample?: INlpDatasetSample; submitForm: (params: INlpSampleFormAttributes) => void; + isMutationLoading: boolean; }; const NlpDatasetSample: FC = ({ sample, submitForm, + isMutationLoading, }) => { const { t } = useTranslate(); const { data: entities, refetch: refetchEntities } = useFind( @@ -96,6 +98,7 @@ const NlpDatasetSample: FC = ({ }); const currentText = watch("text"); const currentType = watch("type"); + const language = watch("language"); const { apiClient } = useApiClient(); const { fields: traitEntities, update: updateTraitEntity } = useFieldArray({ control, @@ -165,6 +168,17 @@ const NlpDatasetSample: FC = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [JSON.stringify(defaultValues)]); + const hasEmptyCurrentType = !currentType; + const hasEmptyCurrentText = !currentText; + const hasEmptyLanguage = !language; + const hasEmptyTraitEntitesValue = traitEntities.some((e) => !e.value); + const shouldDisableValidateButton = + hasEmptyCurrentType || + hasEmptyCurrentText || + hasEmptyTraitEntitesValue || + hasEmptyLanguage || + isMutationLoading; + return (
@@ -441,14 +455,7 @@ const NlpDatasetSample: FC = ({ variant="contained" startIcon={} onClick={handleSubmit(onSubmitForm)} - disabled={ - !( - currentText !== "" && - currentType !== NlpSampleType.inbox && - traitEntities.every((e) => e.value !== "") && - keywordEntities.every((e) => e.value !== "") - ) - } + disabled={shouldDisableValidateButton} type="submit" > {t("button.validate")} diff --git a/frontend/src/components/nlp/index.tsx b/frontend/src/components/nlp/index.tsx index a53ab4c7..809e2d89 100644 --- a/frontend/src/components/nlp/index.tsx +++ b/frontend/src/components/nlp/index.tsx @@ -62,7 +62,7 @@ export const Nlp = ({ }; const { t } = useTranslate(); const { toast } = useToast(); - const { mutate: createSample } = useCreate< + const { mutate: createSample, isLoading } = useCreate< EntityType.NLP_SAMPLE, INlpDatasetSampleAttributes, INlpSample, @@ -91,7 +91,10 @@ export const Nlp = ({ - +