playreel/frontend/components/account-badge.tsx
2026-09-16 14:11:15 +09:00

46 lines
1.4 KiB
TypeScript

"use client";
/** 사이드바 맨 아래 계정 카드. 누구로 들어와 있는지, 남은 크레딧, 나가는 길 */
import { useRouter } from "next/navigation";
import { signOut, useMe } from "@/lib/auth";
export default function AccountBadge() {
const router = useRouter();
const { me } = useMe();
if (me === null) return null;
if (me === false) {
return (
<div className="account-card">
<button type="button" className="account-link" onClick={() => router.push("/login")}>
</button>
</div>
);
}
return (
<div className="account-card">
{me.picture ? (
// eslint-disable-next-line @next/next/no-img-element
<img className="account-photo" src={me.picture} alt="" referrerPolicy="no-referrer" />
) : (
<span className="account-photo account-photo--blank">
{(me.name || me.email).slice(0, 1)}
</span>
)}
<div className="account-body">
<p className="account-name" title={me.email}>{me.name || me.email}</p>
<p className="account-credit"> : {me.jobs_left}</p>
</div>
{/* 화면 여기저기 남의 계정 데이터가 남아 있어 통째로 새로 받는다 */}
<button type="button" className="account-link"
onClick={() => { signOut().finally(() => { window.location.href = "/"; }); }}>
</button>
</div>
);
}