Files
basango/packages/ui/src/components/submit-button.tsx
T

31 lines
772 B
TypeScript

import { Button } from "@basango/ui/components/button";
import { Spinner } from "@basango/ui/components/spinner";
import { cn } from "@basango/ui/lib/utils";
import * as React from "react";
export function SubmitButton({
children,
isSubmitting,
disabled,
...props
}: {
children: React.ReactNode;
isSubmitting: boolean;
disabled?: boolean;
} & React.ComponentProps<"button">) {
return (
<Button
disabled={isSubmitting || disabled}
{...props}
className={cn("relative", props.className)}
>
<span className={cn(isSubmitting && "invisible")}>{children}</span>
{isSubmitting && (
<div className="absolute inset-0 flex items-center justify-center">
<Spinner />
</div>
)}
</Button>
);
}