diff --git a/adminfront/src/components/layout/AppLayout.tsx b/adminfront/src/components/layout/AppLayout.tsx index caa86328..62a5e680 100644 --- a/adminfront/src/components/layout/AppLayout.tsx +++ b/adminfront/src/components/layout/AppLayout.tsx @@ -46,10 +46,9 @@ function AppLayout() { const isMockRoleEnabled = isDevRoleOverrideEnabled && window.localStorage.getItem("X-Mock-Role-Enabled") === "true"; - const mockRoleOverride = - isMockRoleEnabled - ? window.localStorage.getItem("X-Mock-Role") - : null; + const mockRoleOverride = isMockRoleEnabled + ? window.localStorage.getItem("X-Mock-Role") + : null; const [theme, setTheme] = useState<"light" | "dark">(() => { const stored = window.localStorage.getItem("admin_theme"); return stored === "dark" ? "dark" : "light"; @@ -337,10 +336,7 @@ function AppLayout() { const handleSessionExpiryToggle = () => { setIsSessionExpiryEnabled((prev) => { const next = !prev; - window.localStorage.setItem( - "baron_session_expiry_enabled", - String(next), - ); + window.localStorage.setItem("baron_session_expiry_enabled", String(next)); return next; }); }; @@ -413,10 +409,7 @@ function AppLayout() { {t("ui.admin.header.plane", "ADMIN PLANE")}
- {t( - "ui.admin.header.subtitle", - "Manage your organization", - )} + {t("ui.admin.header.subtitle", "Manage your organization")} @@ -518,9 +511,7 @@ function AppLayout() { onClick={handleSessionExpiryToggle} className={[ "relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition", - isSessionExpiryEnabled - ? "bg-primary" - : "bg-muted", + isSessionExpiryEnabled ? "bg-primary" : "bg-muted", ].join(" ")} > { setIsProfileOpen(false); - navigate(`/users/${profile?.id || auth.user?.profile.sub}`); + navigate( + `/users/${profile?.id || auth.user?.profile.sub}`, + ); }} className="mt-2 flex w-full items-center gap-2 rounded-lg border border-border px-3 py-2 text-left text-sm text-foreground transition hover:bg-muted/20" > diff --git a/adminfront/src/components/layout/RoleSwitcher.tsx b/adminfront/src/components/layout/RoleSwitcher.tsx index 3a63c2f9..ea6405cd 100644 --- a/adminfront/src/components/layout/RoleSwitcher.tsx +++ b/adminfront/src/components/layout/RoleSwitcher.tsx @@ -130,8 +130,12 @@ const RoleSwitcher: FC = () => { alignItems: "center", }} > - {t("ui.admin.dev_role_switcher_real", "실제 역할 사용")} - {!isOverrideEnabled && ✅} + + {t("ui.admin.dev_role_switcher_real", "실제 역할 사용")} + + {!isOverrideEnabled && ( + ✅ + )} {(["super_admin", "tenant_admin", "rp_admin", "user"] as const).map( (role) => ( diff --git a/adminfront/src/lib/sessionSliding.test.ts b/adminfront/src/lib/sessionSliding.test.ts index 7d7441e1..410ac63e 100644 --- a/adminfront/src/lib/sessionSliding.test.ts +++ b/adminfront/src/lib/sessionSliding.test.ts @@ -10,7 +10,9 @@ describe("shouldAttemptSlidingSessionRenew", () => { it("returns false when remaining time is above the 5 minute threshold", () => { expect( shouldAttemptSlidingSessionRenew({ - expiresAtSec: Math.floor((nowMs + SESSION_RENEW_THRESHOLD_MS + 1_000) / 1000), + expiresAtSec: Math.floor( + (nowMs + SESSION_RENEW_THRESHOLD_MS + 1_000) / 1000, + ), nowMs, isEnabled: true, isAuthenticated: true, @@ -24,7 +26,9 @@ describe("shouldAttemptSlidingSessionRenew", () => { it("returns true when remaining time is within the 5 minute threshold", () => { expect( shouldAttemptSlidingSessionRenew({ - expiresAtSec: Math.floor((nowMs + SESSION_RENEW_THRESHOLD_MS - 1_000) / 1000), + expiresAtSec: Math.floor( + (nowMs + SESSION_RENEW_THRESHOLD_MS - 1_000) / 1000, + ), nowMs, isEnabled: true, isAuthenticated: true, @@ -38,7 +42,9 @@ describe("shouldAttemptSlidingSessionRenew", () => { it("returns false when automatic renewal is disabled", () => { expect( shouldAttemptSlidingSessionRenew({ - expiresAtSec: Math.floor((nowMs + SESSION_RENEW_THRESHOLD_MS - 1_000) / 1000), + expiresAtSec: Math.floor( + (nowMs + SESSION_RENEW_THRESHOLD_MS - 1_000) / 1000, + ), nowMs, isEnabled: false, isAuthenticated: true, @@ -52,7 +58,9 @@ describe("shouldAttemptSlidingSessionRenew", () => { it("returns false when the last renew attempt is still within the throttle window", () => { expect( shouldAttemptSlidingSessionRenew({ - expiresAtSec: Math.floor((nowMs + SESSION_RENEW_THRESHOLD_MS - 1_000) / 1000), + expiresAtSec: Math.floor( + (nowMs + SESSION_RENEW_THRESHOLD_MS - 1_000) / 1000, + ), nowMs, isEnabled: true, isAuthenticated: true, diff --git a/adminfront/src/locales/template.toml b/adminfront/src/locales/template.toml index f22098c4..868d4f8d 100644 --- a/adminfront/src/locales/template.toml +++ b/adminfront/src/locales/template.toml @@ -702,6 +702,7 @@ title = "" [ui.admin] brand = "" dev_role_switcher = "" +dev_role_switcher_real = "" title = "" [ui.admin.api_keys] @@ -1429,6 +1430,7 @@ type = "" [ui.dev.clients.type] pkce = "" private = "" +pkce_headless = "" [ui.dev.dashboard] ready_badge = "" diff --git a/devfront/src/components/layout/AppLayout.tsx b/devfront/src/components/layout/AppLayout.tsx index 875344f3..21c43d00 100644 --- a/devfront/src/components/layout/AppLayout.tsx +++ b/devfront/src/components/layout/AppLayout.tsx @@ -276,10 +276,7 @@ function AppLayout() { const handleSessionExpiryToggle = () => { setIsSessionExpiryEnabled((prev) => { const next = !prev; - window.localStorage.setItem( - "baron_session_expiry_enabled", - String(next), - ); + window.localStorage.setItem("baron_session_expiry_enabled", String(next)); return next; }); }; @@ -467,9 +464,7 @@ function AppLayout() { onClick={handleSessionExpiryToggle} className={[ "relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition", - isSessionExpiryEnabled - ? "bg-primary" - : "bg-muted", + isSessionExpiryEnabled ? "bg-primary" : "bg-muted", ].join(" ")} > ; redirectUris: string[]; scopes: string[]; - metadata?: Record