import { useEffect, useRef } from "react"; import { useWatch, useFormContext } from "react-hook-form"; import { required } from "ra-core"; import { AutocompleteArrayInput } from "@/components/ds/admin/autocomplete-array-input"; import { ReferenceArrayInput } from "@/components/ds/admin/reference-array-input"; import { ReferenceInput } from "@/components/ds/admin/reference-input"; import { TextInput } from "@/components/ds/admin/text-input"; import { NumberInput } from "@/components/ds/admin/number-input"; import { DateInput } from "@/components/ds/admin/date-input"; import { SelectInput } from "@/components/ds/admin/select-input"; import { useTranslate } from "ra-core"; import { translateChoice } from "@/i18n/utils"; import { Separator } from "@/components/ds/ui/separator"; import { useIsMobile } from "@/hooks/use-mobile"; import { contactOptionText } from "../misc/ContactOption"; import { useConfigurationContext } from "../root/ConfigurationContext"; import { AutocompleteCompanyInput } from "../companies/AutocompleteCompanyInput.tsx"; export const DealInputs = () => { const isMobile = useIsMobile(); return (
); }; const DealInfoInputs = () => { const translate = useTranslate(); return (
); }; const DealLinkedToInputs = () => { const company_id = useWatch({ name: "company_id" }); const { setValue } = useFormContext(); const previousCompanyId = useRef(company_id); const translate = useTranslate(); // Clear selected contacts when company changes useEffect(() => { if ( previousCompanyId.current !== undefined && previousCompanyId.current !== company_id ) { setValue("contact_ids", []); } previousCompanyId.current = company_id; }, [company_id, setValue]); return (

{translate("crm.deal.section.linked_to")}

); }; const DealMiscInputs = () => { const { dealStages, dealCategories } = useConfigurationContext(); const translate = useTranslate(); const translatedDealCategories = dealCategories.map((category) => ({ id: category, name: translateChoice(translate, "crm.deal.category", category, category), })); const translatedDealStages = dealStages.map((stage) => ({ id: stage.value, name: translateChoice( translate, "crm.deal.stage", stage.value, stage.label, ), })); return (

{translate("crm.deal.section.misc")}

); };