"use client"; import { Loader2 } from "lucide-react"; import { Button } from "@/components/ui/button"; import type { ComponentProps, ReactNode } from "react"; import { useFormStatus } from "react-dom"; import { cn } from "@/lib/utils"; type PendingSubmitButtonProps = ComponentProps & { idleIcon?: ReactNode; pendingIcon?: ReactNode; pendingChildren?: ReactNode; }; export function PendingSubmitButton({ children, className, disabled, idleIcon, pendingChildren, pendingIcon, type = "submit", ...props }: PendingSubmitButtonProps) { const { pending } = useFormStatus(); const icon = pending ? pendingIcon ?? : idleIcon; return ( ); }