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();