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'; import MobileInput from './MobileInput'; import Portal from './Portal'; import { iranMobileSchema } from '../../lib/utils'; import { useOverlayDismiss } from '../../hooks/useOverlayDismiss'; const inviteSchema = z.object({ mobile: iranMobileSchema, 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), }); const dismiss = useOverlayDismiss(onClose); return (
دعوت پزشک به کلینیک
inviteMut.mutate(d))}>
{errors.mobile &&
{errors.mobile.message}
}

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

); }