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"),
+4 -2
View File
@@ -93,10 +93,12 @@ export function renderPendingWorkflow(root: HTMLElement, opts: PendingWorkflowOp
root.append(shell.root);
}
/** 워크플로우 스텝 라벨 6종 (locale 결과) — B04~B09 공용.
* 기존 WF_Step_* 키를 재사용 (중복 등록 방지, frontend.md §3). */
/** 워크플로우 스텝 라벨 7종 (locale 결과) — B03~B09 공용.
* 파일 입력(B03)부터 견적/문서(B09)까지 대시보드 워크플로우와 동일한 순서.
* 기존 WF_Step_* / B03_File_Title 키를 재사용 (중복 등록 방지, frontend.md §3). */
export function workflowSteps(): string[] {
return [
L("B03_File_Title"),
L("WF_Step_Surface"),
L("WF_Step_Route"),
L("WF_Step_ProfileCross"),