import { format } from "date-fns"; import { enUS, it } from "date-fns/locale"; import { CalendarIcon, X } from "lucide-react"; import { z } from "zod/v4"; import { Counter } from "~/components/counter"; import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, } from "~/components/custom_ui/form"; import { Button } from "~/components/ui/button"; import { Calendar } from "~/components/ui/calendar"; import { Label } from "~/components/ui/label"; import { Popover, PopoverContent, PopoverTrigger, } from "~/components/ui/popover"; import { Switch } from "~/components/ui/switch"; import { cn } from "~/lib/utils"; import { useZodForm } from "~/lib/zodForm"; import { useTranslation } from "~/providers/I18nProvider"; import type { Servizio } from "~/schemas/public/Servizio"; import { DEFAULT_SERVIZIO_INTERRUZIONE_DURATION_DAYS } from "~/utils/config"; const Schema = z.object({ decorrenza: z.date().nullable(), isInterrotto: z.boolean(), isOkAcconto: z.boolean(), isOkConsulenza: z.boolean(), isOkSaldo: z.boolean(), skipPayment: z.boolean(), skipControlloDoc: z.boolean(), skipDocMotivazione: z.boolean(), onboardOk: z.boolean(), interruzioneDays: z.number(), acceptedInterr: z.boolean(), }); export type FormValues = z.infer; export const FormEditServizio = ({ initialData, onSubmit, }: { initialData: Servizio | undefined; onSubmit: (fields: FormValues) => void; }) => { // This can come from your database or API. let defaultValues: FormValues; if (initialData) { defaultValues = { ...initialData, }; } else { defaultValues = { decorrenza: null, isInterrotto: false, isOkAcconto: false, isOkConsulenza: false, isOkSaldo: false, skipPayment: false, skipControlloDoc: false, skipDocMotivazione: false, onboardOk: false, interruzioneDays: DEFAULT_SERVIZIO_INTERRUZIONE_DURATION_DAYS, acceptedInterr: false, }; } const { locale, t } = useTranslation(); z.config(z.locales[locale]()); const form = useZodForm(Schema, { defaultValues: defaultValues, }); const DatePickerLocale = locale === "it" ? it : enUS; return (
(
Interrotto
Il servizio è interrotto
)} /> (
Informativa Interruzione Vista
)} /> (
Giorni interruzione
field.onChange(Number(value))} value={Number(field.value)} />
)} />
(
Decorrenza Servizio
)} />
(
Onboard Fatta
Il servizio è interrotto
)} /> (
Acconto Pagato
I'acconto è stato pagato o attivato manualmente
)} /> (
Saldo Pagato
Il saldo è stato pagato o attivato manualmente
)} /> (
Consulenza Pagata
La consulenza è stata pagata o attivata manualmente
)} />
(
Salta Pagamento
Salta la richiesta di pagamento al cliente (per tutti i pagamenti)
)} /> (
Salta controllo documento
Salta la richiesta del documento del cliente al momento dello sblocco contatti
)} /> (
Salta documento motivazione
Salta l'invio del documento di motivazione al cliente al momento della conferma annuncio
)} />
); };