import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { useForm } from "react-hook-form"; import * as z from "zod"; import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; import React, { forwardRef } from "react"; import { Button } from "@/components/ui/button"; interface DoctorFormProps { selectedUser: IUser; heading: React.ReactNode; onSave?: (values: any, userType: "doctor" | "user") => void; onClickCallback: () => void; } export const doctorSettingsSchema = z.object({ doctor_name: z.string().min(1).max(50), specialization: z.string().min(1).max(500), hospital_name: z.string().min(1).max(200), favorite_phrases: z.string().min(1).max(200), hospital_layout: z.string().min(1).max(500), }); export type DoctorSettingsInput = z.infer; const DoctorForm = ({ selectedUser, heading, onSave, onClickCallback }: DoctorFormProps) => { const userMetadata = selectedUser.user_info .user_metadata as IDoctorMetadata; const form = useForm({ defaultValues: { doctor_name: userMetadata?.doctor_name ?? selectedUser.supervisee_name, specialization: userMetadata?.specialization ?? "", hospital_name: userMetadata?.hospital_name ?? "", favorite_phrases: userMetadata?.favorite_phrases ?? "", hospital_layout: userMetadata?.hospital_layout ?? "", }, }); async function onSubmit(values: z.infer) { onSave && onSave(values, "doctor"); } const handleSave = () => { onSave && onSave(form.getValues(), "doctor"); onClickCallback(); }; return (
{heading}

Basic Info

( {"Your Name"} )} />

Hospital Details

( {"Hospital or clinic name(s)"} )} /> ( {"Nurse's favorite phrases"}