/* ============================================================================= * B01_Dashboard_UI_Page.ts * 대시보드 입구 — 나(me) · 산림청 판정을 읽고 셸(`B01_Dashboard_UI_Shell.ts`)을 세움(546). * 세부 페이지는 등록부(`B01_Dashboard_UI_Views.ts`) · 옛 구역 부품은 `B01_Dashboard_UI_Legacy.ts`. * ========================================================================== */ import { hideLoadingOverlay, showLoadingOverlay, showToast } from "@ui/ui_template_elements"; import type { MountedPage } from "../A00_Common/router"; import { fetchSessionUser } from "../A06_Login/A06_Login_Api_Fetch"; import { fetchDashboardMe } from "./B01_Dashboard_Api_Fetch"; import { L } from "./B01_Dashboard_UI_Common"; import { mountDashboardShell } from "./B01_Dashboard_UI_Shell"; import "./B01_Dashboard_UI_Style.css"; import "./B01_Dashboard_UI_Style_Company.css"; export type { DashboardState } from "./B01_Dashboard_UI_Legacy"; export async function renderB01Dashboard(root: HTMLElement): Promise { showLoadingOverlay(); try { const [user, session] = await Promise.all([ fetchDashboardMe(), fetchSessionUser().catch(() => null), ]); root.innerHTML = ""; return await mountDashboardShell(root, user, Boolean(session?.is_forest_service)); } catch (error) { showToast(error instanceof Error ? error.message : L("B01_Dashboard_LoadFailed"), "error"); } finally { hideLoadingOverlay(); } }