"use client"; import { SaveIcon } from "lucide-react"; import { useRouter } from "next/navigation"; import { Controller } from "react-hook-form"; import { Button } from "@/components/shadcn"; import { CustomInput } from "@/components/shadcn/custom"; import { Form } from "@/components/shadcn/form"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/shadcn/select/select"; import type { InvitationRoleOption } from "@/types/invitations"; import { useSendInvitation } from "./use-send-invitation"; interface SendInvitationFormProps { roles: InvitationRoleOption[]; defaultRole?: string; isSelectorDisabled: boolean; // Where the invitation was sent from, forwarded to the API as `?source=` // so the origin can be told apart (e.g. the add-provider wizard). source?: string; // Replaces the default navigation to the invitation details page. onSuccess?: (invitationId: string) => void; } export const SendInvitationForm = ({ roles = [], defaultRole = "admin", isSelectorDisabled = false, source, onSuccess, }: SendInvitationFormProps) => { const router = useRouter(); const { form, onSubmit, isSubmitting } = useSendInvitation({ source, defaultRoleId: isSelectorDisabled ? defaultRole : "", onSuccess: (invitation) => { if (onSuccess) { onSuccess(invitation.id); return; } router.push(`/invitations/check-details/?id=${invitation.id}`); }, }); return (
{/* Email Field */} (
{form.formState.errors.roleId && (

{form.formState.errors.roleId.message}

)}
)} /> {/* Submit Button */}
); };