Files
buzz-sheet/components/auth/sign-out-button.tsx
T
gunshiz 4b16941e11
CI / Verify (push) Successful in 1m31s
CI / Build immutable images and deploy (push) Successful in 2m16s
fix(auth) : keep Guide sessions beyond Sudloh token expiry
2026-10-06 18:00:42 +07:00

27 lines
970 B
TypeScript

"use client";
import { useRouter } from "next/navigation";
import { LogOutIcon } from "lucide-react";
import { Button } from "@/components/ui/button";
import { authClient } from "@/lib/auth/client";
import { markSudlohSignInAttempt } from "@/lib/auth/sudloh-redirect";
import { unsubscribeCommissionPush } from "@/components/commission/push-client";
export function SignOutButton({ admin = false }: { admin?: boolean }) {
const router = useRouter();
const { data } = authClient.useSession();
if (!admin && !data?.user) return null;
async function signOut() {
await unsubscribeCommissionPush().catch(() => undefined);
await authClient.signOut();
markSudlohSignInAttempt();
router.push(admin ? "/auth/login?next=%2Fadmin" : "/commission");
router.refresh();
}
return <Button type="button" variant="ghost" size="sm" onClick={() => void signOut()}>
<LogOutIcon data-icon="inline-start" />ออกจากระบบ
</Button>;
}