import { useState } from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog"; import { AppointmentForm } from "./appointment-form"; import { AppointmentUncheckedCreateInputObjectSchema, PatientUncheckedCreateInputObjectSchema } from "@repo/db/usedSchemas"; import {z} from "zod"; type Appointment = z.infer; const insertAppointmentSchema = (AppointmentUncheckedCreateInputObjectSchema as unknown as z.ZodObject).omit({ id: true, createdAt: true, }); type InsertAppointment = z.infer; const updateAppointmentSchema = (AppointmentUncheckedCreateInputObjectSchema as unknown as z.ZodObject).omit({ id: true, createdAt: true, }).partial(); type UpdateAppointment = z.infer; const PatientSchema = (PatientUncheckedCreateInputObjectSchema as unknown as z.ZodObject).omit({ appointments: true, }); type Patient = z.infer; interface AddAppointmentModalProps { open: boolean; onOpenChange: (open: boolean) => void; onSubmit: (data: InsertAppointment | UpdateAppointment) => void; onDelete?: (id: number) => void; isLoading: boolean; appointment?: Appointment; patients: Patient[]; } export function AddAppointmentModal({ open, onOpenChange, onSubmit, onDelete, isLoading, appointment, patients, }: AddAppointmentModalProps) { return ( {appointment ? "Edit Appointment" : "Add New Appointment"}
{ onSubmit(data); onOpenChange(false); }} isLoading={isLoading} onDelete={onDelete} onOpenChange={onOpenChange} />
); }