chatbot-template/components/custom/submit-button.tsx
2024-10-11 18:00:22 +05:30

29 lines
692 B
TypeScript

"use client";
import { useFormStatus } from "react-dom";
import { LoaderIcon } from "@/components/custom/icons";
import { Button } from "../ui/button";
export function SubmitButton({ children }: { children: React.ReactNode }) {
const { pending } = useFormStatus();
return (
<Button
type={pending ? "button" : "submit"}
aria-disabled={pending}
className="relative"
>
{children}
{pending && (
<span className="animate-spin absolute right-4">
<LoaderIcon />
</span>
)}
<span aria-live="polite" className="sr-only" role="status">
{pending ? "Loading" : "Submit form"}
</span>
</Button>
);
}