"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { useTranslations } from "next-intl"; import { FormProvider, useForm } from "react-hook-form"; import { z } from "zod"; import { Button } from "@/components/Button"; import { InlineSwitchField } from "@/components/form/InlineSwitchField"; import { Label } from "@/components/form/Label"; import { TextField } from "@/components/form/TextField"; import { ZoneEditorField } from "@/components/form/ZoneEditorField"; import { zoneSchema } from "@/schemas"; import { Zone } from "@/server/myZones"; import { TimeControl } from "@/types"; export type ZoneFormValues = z.infer; type ZoneFormProps = { zone?: Zone; onSubmit: (data: ZoneFormValues) => Promise; onCancel: () => void; submitTitle?: string; cancelTitle?: string; }; export const ZoneForm = ({ zone, onSubmit, onCancel, submitTitle, cancelTitle, }: ZoneFormProps) => { const t = useTranslations("Zones"); const at = useTranslations("App"); // @ts-ignore - Type instantiation is excessively deep and possibly infinite const form = useForm({ resolver: zodResolver(zoneSchema), defaultValues: zone ? { name: zone.name, classicNotifications: zone.classicNotifications, rapidNotifications: zone.rapidNotifications, blitzNotifications: zone.blitzNotifications, otherNotifications: zone.otherNotifications, features: zone.features as ZoneFormValues["features"], } : { classicNotifications: false, rapidNotifications: false, blitzNotifications: false, otherNotifications: false, features: { type: "FeatureCollection", features: [], }, }, }); const features = form.watch("features"); console.log(features); return (
{t("notificationsInfo")}
); };