refactor(ui): enforce poyraz button standards

This commit is contained in:
poyrazavsever
2026-07-17 22:14:09 +03:00
parent bf10eb0fb0
commit 236f136a6f
9 changed files with 151 additions and 14 deletions
+8 -1
View File
@@ -7,10 +7,14 @@ import { useFormStatus } from "react-dom";
import { cn } from "@/lib/utils";
type PendingSubmitButtonProps = ComponentProps<typeof Button> & {
type PendingSubmitButtonProps = Omit<
ComponentProps<typeof Button>,
"effect" | "variant"
> & {
idleIcon?: ReactNode;
pendingIcon?: ReactNode;
pendingChildren?: ReactNode;
variant?: "default" | "secondary";
};
export function PendingSubmitButton({
@@ -21,6 +25,7 @@ export function PendingSubmitButton({
pendingChildren,
pendingIcon,
type = "submit",
variant = "default",
...props
}: PendingSubmitButtonProps) {
const { pending } = useFormStatus();
@@ -36,6 +41,8 @@ export function PendingSubmitButton({
aria-busy={pending}
loading={pending && !pendingIcon}
className={cn(className)}
variant={variant}
effect="shine"
>
{icon}
{pending ? pendingChildren ?? children : children}