import { useState } from "react"; import type { UseFormReturn } from "react-hook-form"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { TimeUnit } from "@calcom/prisma/enums"; import { Dropdown, DropdownItem, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Icon, TextField, } from "@calcom/ui"; import type { FormValues } from "../pages/workflow"; const TIME_UNITS = [TimeUnit.DAY, TimeUnit.HOUR, TimeUnit.MINUTE] as const; type Props = { form: UseFormReturn; disabled: boolean; }; const TimeUnitAddonSuffix = ({ DropdownItems, timeUnitOptions, form, }: { form: UseFormReturn; DropdownItems: JSX.Element; timeUnitOptions: { [x: string]: string }; }) => { // because isDropdownOpen already triggers a render cycle we can use getValues() // instead of watch() function const timeUnit = form.getValues("timeUnit"); const [isDropdownOpen, setIsDropdownOpen] = useState(false); return ( {DropdownItems} ); }; export const TimeTimeUnitInput = (props: Props) => { const { form } = props; const { t } = useLocale(); const timeUnitOptions = TIME_UNITS.reduce((acc, option) => { acc[option] = t(`${option.toLowerCase()}_timeUnit`); return acc; }, {} as { [x: string]: string }); return (
{TIME_UNITS.map((timeUnit, index) => ( { form.setValue("timeUnit", timeUnit); }}> {timeUnitOptions[timeUnit]} ))} } /> } />
); };