This commit is contained in:
2026-07-10 19:52:06 +09:00
parent b98affbf99
commit 6b1583103f
19 changed files with 1515 additions and 98 deletions
+35 -18
View File
@@ -126,24 +126,41 @@ function buildHeader(): HTMLElement {
/** 서버 세션 상태에 따라 로그인/로그아웃 버튼을 채운다. */
async function fillAuthActions(slot: HTMLElement): Promise<void> {
const loggedIn = await isAuthenticated();
slot.innerHTML = "";
if (loggedIn) {
const { fetchSessionUser } = await import("../A06_Login/A06_Login_Api_Fetch");
const user = await fetchSessionUser();
slot.append(
createButton({
label: user?.name?.trim() || L("Nav_MyAccount"),
variant: "ghost",
onClick: () => navigateTo(ROUTES.B01_ACCOUNT),
}),
createButton({
label: L("Nav_Logout"),
variant: "pill",
onClick: onApp_Logout_Click,
}),
);
} else {
try {
const loggedIn = await isAuthenticated();
slot.innerHTML = "";
if (loggedIn) {
const { fetchSessionUser } = await import("../A06_Login/A06_Login_Api_Fetch");
const user = await fetchSessionUser();
slot.append(
createButton({
label: user?.name?.trim() || L("Nav_MyAccount"),
variant: "ghost",
onClick: () => navigateTo(ROUTES.B01_ACCOUNT),
}),
createButton({
label: L("Nav_Logout"),
variant: "pill",
onClick: onApp_Logout_Click,
}),
);
} else {
slot.append(
createButton({
label: L("Nav_Login"),
variant: "ghost",
onClick: () => navigateTo(ROUTES.A06_LOGIN),
}),
createButton({
label: L("Nav_Register"),
variant: "filled",
onClick: () => navigateTo(ROUTES.A07_REGISTER),
}),
);
}
} catch (error) {
console.error("[app_shell] fillAuthActions error:", error);
slot.innerHTML = "";
slot.append(
createButton({
label: L("Nav_Login"),