diff --git a/TaxBaik.Web/Components/Admin/Layout/MainLayout.razor b/TaxBaik.Web/Components/Admin/Layout/MainLayout.razor index 5a890b0..16cce88 100644 --- a/TaxBaik.Web/Components/Admin/Layout/MainLayout.razor +++ b/TaxBaik.Web/Components/Admin/Layout/MainLayout.razor @@ -1,6 +1,7 @@ @inherits LayoutComponentBase @inject NavigationManager Navigation @inject IJSRuntime JS +@inject VersionInfo VersionInfo @implements IDisposable @rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false)) @@ -88,6 +89,12 @@ 문의 관리 설정 + +
+
Version
+
v@(VersionInfo.Version)
+
@VersionInfo.Built
+
diff --git a/TaxBaik.Web/wwwroot/css/admin.css b/TaxBaik.Web/wwwroot/css/admin.css index 3d57d88..84687d2 100644 --- a/TaxBaik.Web/wwwroot/css/admin.css +++ b/TaxBaik.Web/wwwroot/css/admin.css @@ -572,6 +572,33 @@ textarea:focus-visible { color: var(--text-tertiary); } +.admin-drawer-version { + margin-top: auto; + padding: var(--space-4); + border-top: 1px solid var(--border-color-light); + font-size: 0.72rem; + color: var(--text-tertiary); + line-height: 1.35; +} + +.admin-drawer-version-label { + text-transform: uppercase; + letter-spacing: 0.08em; + margin-bottom: 4px; + color: var(--text-secondary); + font-weight: var(--font-weight-semibold); +} + +.admin-drawer-version-value { + font-weight: var(--font-weight-semibold); + color: var(--text-primary); +} + +.admin-drawer-version-built { + margin-top: 2px; + word-break: break-word; +} + .admin-main { flex: 1; overflow-y: auto; diff --git a/TaxBaik.Web/wwwroot/js/admin-session.js b/TaxBaik.Web/wwwroot/js/admin-session.js index e0dcfba..7e558a0 100644 --- a/TaxBaik.Web/wwwroot/js/admin-session.js +++ b/TaxBaik.Web/wwwroot/js/admin-session.js @@ -21,6 +21,11 @@ window.taxbaikAdminSession = { }, showLoading: function () { + if (document.documentElement.classList.contains('admin-login-route')) { + window.taxbaikAdminSession.hideLoading(); + return; + } + const overlay = document.getElementById('blazor-loading'); if (!overlay) return; @@ -84,6 +89,10 @@ window.taxbaikAdminSession = { window.taxbaikAdminSession.syncRouteClass(); window.addEventListener('popstate', window.taxbaikAdminSession.syncRouteClass); + if (document.documentElement.classList.contains('admin-login-route')) { + window.taxbaikAdminSession.hideLoading(); + } + // Show loading on initial page load — overlay has 'show' from HTML, // but we still need to set up the observer to detect when to hide it. window.taxbaikAdminSession.showLoading();