This commit is contained in:
abdou sfayhi 2025-05-05 19:58:09 +01:00 committed by GitHub
commit 712aacab65
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 26 additions and 12 deletions

View File

@ -29,7 +29,7 @@ export const NlpSampleForm: FC<ComponentFormProps<INlpDatasetSample>> = ({
}) => {
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<ComponentFormProps<INlpDatasetSample>> = ({
return (
<Wrapper onSubmit={() => {}} {...WrapperProps}>
<NlpDatasetSample sample={data || undefined} submitForm={onSubmitForm} />
<NlpDatasetSample
sample={data || undefined}
submitForm={onSubmitForm}
isMutationLoading={isUpdatingSample}
/>{" "}
</Wrapper>
);
};

View File

@ -49,11 +49,13 @@ import { INlpValue } from "@/types/nlp-value.types";
type NlpDatasetSampleProps = {
sample?: INlpDatasetSample;
submitForm: (params: INlpSampleFormAttributes) => void;
isMutationLoading: boolean;
};
const NlpDatasetSample: FC<NlpDatasetSampleProps> = ({
sample,
submitForm,
isMutationLoading,
}) => {
const { t } = useTranslate();
const { data: entities, refetch: refetchEntities } = useFind(
@ -96,6 +98,7 @@ const NlpDatasetSample: FC<NlpDatasetSampleProps> = ({
});
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<NlpDatasetSampleProps> = ({
// 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 (
<Box className="nlp-train" sx={{ position: "relative", p: 2 }}>
<form onSubmit={handleSubmit(onSubmitForm)}>
@ -441,14 +455,7 @@ const NlpDatasetSample: FC<NlpDatasetSampleProps> = ({
variant="contained"
startIcon={<Check />}
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")}

View File

@ -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 = ({
<Grid container flexDirection="row">
<Grid item xs={7}>
<Paper>
<NlpDatasetSample submitForm={onSubmitForm} />
<NlpDatasetSample
submitForm={onSubmitForm}
isMutationLoading={isLoading}
/>
</Paper>
</Grid>
<Grid item xs={5} pl={2}>