import type { FormValues } from "pages/event-types/[type]"; import { useState } from "react"; import { useFormContext } from "react-hook-form"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Frequency } from "@calcom/prisma/zod-utils"; import type { RecurringEvent } from "@calcom/types/Calendar"; import { Alert, Select, SettingsToggle } from "@calcom/ui"; type RecurringEventControllerProps = { recurringEvent: RecurringEvent | null; paymentEnabled: boolean; }; export default function RecurringEventController({ recurringEvent, paymentEnabled, }: RecurringEventControllerProps) { const { t } = useLocale(); const [recurringEventState, setRecurringEventState] = useState(recurringEvent); const formMethods = useFormContext(); /* Just yearly-0, monthly-1 and weekly-2 */ const recurringEventFreqOptions = Object.entries(Frequency) .filter(([key, value]) => isNaN(Number(key)) && Number(value) < 3) .map(([key, value]) => ({ label: t(`${key.toString().toLowerCase()}`, { count: recurringEventState?.interval }), value: value.toString(), })); return (
{paymentEnabled ? ( ) : ( <> { if (!e) { formMethods.setValue("recurringEvent", null); setRecurringEventState(null); } else { const newVal = recurringEvent || { interval: 1, count: 12, freq: Frequency.WEEKLY, }; formMethods.setValue("recurringEvent", newVal); setRecurringEventState(newVal); } }}> {recurringEventState && (

{t("repeats_every")}

{ const newVal = { ...recurringEventState, interval: parseInt(event?.target.value), }; formMethods.setValue("recurringEvent", newVal); setRecurringEventState(newVal); }} /> { const newVal = { ...recurringEventState, count: parseInt(event?.target.value), }; formMethods.setValue("recurringEvent", newVal); setRecurringEventState(newVal); }} />

{t("events", { count: recurringEventState.count, })}

)}
)}
); }