chore(demo): add loading state on sign in button

This commit is contained in:
Bereket Engida
2025-08-02 11:17:35 -07:00
parent 5124b40283
commit 987be984b4

View File

@@ -17,12 +17,14 @@ import { Loader2 } from "lucide-react";
import { signIn } from "@/lib/auth-client";
import Link from "next/link";
import { cn } from "@/lib/utils";
import { useRouter } from "next/navigation";
export default function SignIn() {
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [loading, setLoading] = useState(false);
const [rememberMe, setRememberMe] = useState(false);
const router = useRouter();
return (
<Card className="max-w-md rounded-none">
@@ -81,7 +83,16 @@ export default function SignIn() {
className="w-full"
disabled={loading}
onClick={async () => {
await signIn.email({ email, password });
setLoading(true);
await signIn.email(
{ email, password, rememberMe: rememberMe ? true : false },
{
onSuccess(context) {
router.push("/dashboard");
},
},
);
setLoading(false);
}}
>
{loading ? <Loader2 size={16} className="animate-spin" /> : "Login"}