import { useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import { z } from 'zod'; import { useMutation } from '@tanstack/react-query'; import { XMarkIcon } from '@heroicons/react/24/outline'; import { toast } from 'sonner'; import { api } from '../../lib/api'; import type { ApiResponse } from '../../lib/api'; const inviteSchema = z.object({ mobile: z.string().regex(/^09\d{9}$/, 'شماره موبایل ۱۱ رقمی با 09 شروع می‌شود'), name: z.string().optional(), specialty: z.string().optional(), }); type InviteForm = z.infer; interface Props { clinicUuid: string; onClose: () => void; onInvited?: () => void; } export default function InviteDoctorModal({ clinicUuid, onClose, onInvited }: Props) { const { register, handleSubmit, formState: { errors } } = useForm({ resolver: zodResolver(inviteSchema), }); const inviteMut = useMutation({ mutationFn: (d: InviteForm) => api.post>(`/api/v1/admin/clinic/${clinicUuid}/invite-doctor`, d), onSuccess: () => { toast.success('دعوتنامه ارسال شد'); onInvited?.(); onClose(); }, onError: (e: Error) => toast.error(e.message), }); return (
e.stopPropagation()}>
دعوت پزشک به کلینیک
inviteMut.mutate(d))}>
{errors.mobile &&
{errors.mobile.message}
}

پیامک دعوتنامه با لینک ۷۲ ساعته ارسال می‌شود

); }