ai-chatbot/components/submit-button.tsx
Your Name 53ddb7e585
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Initial commit - clean repository
2025-12-17 20:15:18 +08:00

39 lines
820 B
TypeScript

"use client";
import { useFormStatus } from "react-dom";
import { LoaderIcon } from "@/components/icons";
import { Button } from "./ui/button";
export function SubmitButton({
children,
isSuccessful,
}: {
children: React.ReactNode;
isSuccessful: boolean;
}) {
const { pending } = useFormStatus();
return (
<Button
aria-disabled={pending || isSuccessful}
className="relative"
disabled={pending || isSuccessful}
type={pending ? "button" : "submit"}
>
{children}
{(pending || isSuccessful) && (
<span className="absolute right-4 animate-spin">
<LoaderIcon />
</span>
)}
<output aria-live="polite" className="sr-only">
{pending || isSuccessful ? "正在提交" : "提交表单"}
</output>
</Button>
);
}