From 3b66e4ae166a4c3e88f8069dfedae4086c61a7b7 Mon Sep 17 00:00:00 2001 From: kyy Date: Fri, 20 Feb 2026 12:39:57 +0900 Subject: [PATCH 1/9] =?UTF-8?q?devfront=20=EC=9A=A9=EC=96=B4=20=ED=81=B4?= =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EC=96=B8=ED=8A=B8=20->=20=EC=95=B1=20?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/clients/ClientConsentsPage.tsx | 2 +- .../features/clients/ClientDetailsPage.tsx | 6 ++-- devfront/src/features/clients/ClientsPage.tsx | 2 +- devfront/src/locales/en.toml | 19 ++++++----- devfront/src/locales/ko.toml | 33 ++++++++++--------- devfront/src/locales/template.toml | 3 ++ locales/en.toml | 19 ++++++----- locales/ko.toml | 33 ++++++++++--------- locales/template.toml | 3 ++ 9 files changed, 69 insertions(+), 51 deletions(-) diff --git a/devfront/src/features/clients/ClientConsentsPage.tsx b/devfront/src/features/clients/ClientConsentsPage.tsx index 1897a966..7bacc080 100644 --- a/devfront/src/features/clients/ClientConsentsPage.tsx +++ b/devfront/src/features/clients/ClientConsentsPage.tsx @@ -69,7 +69,7 @@ function ClientConsentsPage() { / - {t("ui.dev.clients.consents.breadcrumb.clients", "Clients")} + {t("ui.dev.clients.consents.breadcrumb.clients", "Apps")} / {clientData?.client?.name || clientId} diff --git a/devfront/src/features/clients/ClientDetailsPage.tsx b/devfront/src/features/clients/ClientDetailsPage.tsx index 8a586125..1882c04a 100644 --- a/devfront/src/features/clients/ClientDetailsPage.tsx +++ b/devfront/src/features/clients/ClientDetailsPage.tsx @@ -124,7 +124,7 @@ function ClientDetailsPage() { if (isLoading) { return (
- {t("msg.dev.clients.details.loading", "Loading client...")} + {t("msg.dev.clients.details.loading", "Loading app...")}
); } @@ -137,7 +137,7 @@ function ClientDetailsPage() {
{t( "msg.dev.clients.details.load_error", - "Error loading client: {{error}}", + "Error loading app: {{error}}", { error: errMsg || t("msg.common.unknown_error", "unknown error") }, )}
@@ -185,7 +185,7 @@ function ClientDetailsPage() {
- {t("ui.dev.clients.details.breadcrumb.section", "Relying Parties")} + {t("ui.dev.clients.details.breadcrumb.section", "Apps")} / diff --git a/devfront/src/features/clients/ClientsPage.tsx b/devfront/src/features/clients/ClientsPage.tsx index d1ddffe8..c551eb16 100644 --- a/devfront/src/features/clients/ClientsPage.tsx +++ b/devfront/src/features/clients/ClientsPage.tsx @@ -101,7 +101,7 @@ function ClientsPage() { const stats: StatItem[] = [ { labelKey: "ui.dev.clients.stats.total", - labelFallback: "총 클라이언트", + labelFallback: "총 애플리케이션", value: totalClients.toString(), deltaKey: "ui.dev.clients.stats.realtime", deltaFallback: "Realtime", diff --git a/devfront/src/locales/en.toml b/devfront/src/locales/en.toml index 26d7f7ae..a0d48f24 100644 --- a/devfront/src/locales/en.toml +++ b/devfront/src/locales/en.toml @@ -209,10 +209,10 @@ unknown_error = "unknown error" [msg.dev.clients] copy_client_id = "Copy Client Id" load_error = "Error loading clients: {{error}}" -loading = "Loading clients..." -showing = "Showing {{shown}} of {{total}} clients" +loading = "Loading apps..." +showing = "Showing {{shown}} of {{total}} apps" status_update_error = "Failed to update client status" -status_updated = "Status Updated" +status_updated = "The app has been {{status}}." [msg.dev.clients.consents] empty = "No consents found." @@ -927,10 +927,13 @@ console_title = "Developer Console" env_badge = "Env: dev" scope_badge = "Scoped to /dev" +[ui.dev.nav] +clients = "Connected Application" + [ui.dev.clients] copy_client_id = "Copy client id" -new = "New" -search_placeholder = "Search Placeholder" +new = "Add Connected Application" +search_placeholder = "Search by app name or ID..." tenant_scoped = "Tenant-scoped" untitled = "Untitled" @@ -1006,8 +1009,8 @@ consents = "Consent & Users" settings = "Settings" [ui.dev.clients.general] -create = "Create" -display_new = "Display New" +create = "Create Application" +display_new = "Add Connected Application" save = "Settings Save" title_create = "Create Client" title_edit = "Client Settings" @@ -1055,7 +1058,7 @@ title = "Need help with OIDC configuration?" view_guides = "View guides" [ui.dev.clients.list] -title = "Title" +title = "Connected Applications" [ui.dev.clients.owner] avatar_alt = "ops user" diff --git a/devfront/src/locales/ko.toml b/devfront/src/locales/ko.toml index 73958bf0..e385eb88 100644 --- a/devfront/src/locales/ko.toml +++ b/devfront/src/locales/ko.toml @@ -207,12 +207,12 @@ unknown_error = "unknown error" [msg.dev] [msg.dev.clients] -copy_client_id = "클라이언트 ID가 복사되었습니다." +copy_client_id = "Client ID가 복사되었습니다." load_error = "Error loading clients: {{error}}" -loading = "Loading clients..." -showing = "Showing {{shown}} of {{total}} clients" +loading = "Loading apps..." +showing = "Showing {{shown}} of {{total}} apps" status_update_error = "Failed to update client status" -status_updated = "클라이언트가 {{status}}되었습니다." +status_updated = "앱이 {{status}}되었습니다." [msg.dev.clients.consents] empty = "No consents found." @@ -257,19 +257,19 @@ help = "인증 후 리다이렉트될 URI를 입력하세요. 생성 후 Connect [msg.dev.clients.general.scopes] empty = "등록된 스코프가 없습니다." -subtitle = "이 클라이언트가 요청할 수 있는 권한 범위를 정의합니다." +subtitle = "이 앱이 요청할 수 있는 권한 범위를 정의합니다." [msg.dev.clients.general.security] confidential_help = "서버 사이드 앱(예: Node.js, Java)처럼 비밀키를 안전하게 보관 가능한 경우." public_help = "SPA/모바일 앱처럼 비밀키 보관이 어려운 경우. PKCE를 기본 사용합니다." -subtitle = "클라이언트 유형을 선택하세요. 보안 수준에 따라 인증 방식이 달라집니다." +subtitle = "앱 유형을 선택하세요. 보안 수준에 따라 인증 방식이 달라집니다." [msg.dev.clients.help] docs_body = "Includes PKCE, client_secret_basic, redirect URI validation tips." subtitle = "Developer guides for Confidential/Public clients, redirect URIs, and auth methods." [msg.dev.clients.registry] -description = "OIDC 클라이언트, 인증 방식, 리다이렉트 URI, 비밀키 재발행을 감사 로그와 함께 관리합니다." +description = "OIDC 앱, 인증 방식, 리다이렉트 URI, 비밀키 재발행을 감사 로그와 함께 관리합니다." [msg.dev.clients.scopes] email = "이메일 주소 접근" @@ -291,7 +291,7 @@ hydra_health = "Hydra Admin 상태 체크 준비" [msg.dev.sidebar] notice = "개발자 전용 콘솔입니다." -notice_detail = "클라이언트 애플리케이션 등록 및 관리를 수행할 수 있습니다." +notice_detail = "연동 앱 등록 및 관리를 수행할 수 있습니다." [msg.info] saved_success = "저장이 완료되었습니다." @@ -927,10 +927,13 @@ console_title = "Developer Console" env_badge = "Env: dev" scope_badge = "Scoped to /dev" +[ui.dev.nav] +clients = "연동 앱" + [ui.dev.clients] copy_client_id = "Copy client id" -new = "새 클라이언트" -search_placeholder = "클라이언트 이름/ID로 검색..." +new = "연동 앱 추가" +search_placeholder = "연동 앱 이름/ID로 검색..." tenant_scoped = "Tenant-scoped" untitled = "Untitled" @@ -973,13 +976,13 @@ user = "User" [ui.dev.clients.details] [ui.dev.clients.details.breadcrumb] -current = "클라이언트 상세" +current = "연동 앱 상세" section = "Relying Parties" [ui.dev.clients.details.credentials] client_id = "Client ID" client_secret = "Client Secret" -title = "클라이언트 자격 증명" +title = "앱 자격 증명" [ui.dev.clients.details.endpoints] read_only = "읽기 전용" @@ -1006,8 +1009,8 @@ consents = "Consent & Users" settings = "Settings" [ui.dev.clients.general] -create = "클라이언트 생성" -display_new = "새 클라이언트" +create = "앱 생성" +display_new = "연동 앱 추가" save = "설정 저장" title_create = "Create Client" title_edit = "Client Settings" @@ -1055,7 +1058,7 @@ title = "Need help with OIDC configuration?" view_guides = "View guides" [ui.dev.clients.list] -title = "클라이언트 목록" +title = "연동 앱 목록" [ui.dev.clients.owner] avatar_alt = "ops user" diff --git a/devfront/src/locales/template.toml b/devfront/src/locales/template.toml index d3f46c56..3e3f25f7 100644 --- a/devfront/src/locales/template.toml +++ b/devfront/src/locales/template.toml @@ -939,6 +939,9 @@ console_title = "" env_badge = "" scope_badge = "" +[ui.dev.nav] +clients = "" + [ui.dev.clients] copy_client_id = "" new = "" diff --git a/locales/en.toml b/locales/en.toml index 26d7f7ae..a0d48f24 100644 --- a/locales/en.toml +++ b/locales/en.toml @@ -209,10 +209,10 @@ unknown_error = "unknown error" [msg.dev.clients] copy_client_id = "Copy Client Id" load_error = "Error loading clients: {{error}}" -loading = "Loading clients..." -showing = "Showing {{shown}} of {{total}} clients" +loading = "Loading apps..." +showing = "Showing {{shown}} of {{total}} apps" status_update_error = "Failed to update client status" -status_updated = "Status Updated" +status_updated = "The app has been {{status}}." [msg.dev.clients.consents] empty = "No consents found." @@ -927,10 +927,13 @@ console_title = "Developer Console" env_badge = "Env: dev" scope_badge = "Scoped to /dev" +[ui.dev.nav] +clients = "Connected Application" + [ui.dev.clients] copy_client_id = "Copy client id" -new = "New" -search_placeholder = "Search Placeholder" +new = "Add Connected Application" +search_placeholder = "Search by app name or ID..." tenant_scoped = "Tenant-scoped" untitled = "Untitled" @@ -1006,8 +1009,8 @@ consents = "Consent & Users" settings = "Settings" [ui.dev.clients.general] -create = "Create" -display_new = "Display New" +create = "Create Application" +display_new = "Add Connected Application" save = "Settings Save" title_create = "Create Client" title_edit = "Client Settings" @@ -1055,7 +1058,7 @@ title = "Need help with OIDC configuration?" view_guides = "View guides" [ui.dev.clients.list] -title = "Title" +title = "Connected Applications" [ui.dev.clients.owner] avatar_alt = "ops user" diff --git a/locales/ko.toml b/locales/ko.toml index 73958bf0..e385eb88 100644 --- a/locales/ko.toml +++ b/locales/ko.toml @@ -207,12 +207,12 @@ unknown_error = "unknown error" [msg.dev] [msg.dev.clients] -copy_client_id = "클라이언트 ID가 복사되었습니다." +copy_client_id = "Client ID가 복사되었습니다." load_error = "Error loading clients: {{error}}" -loading = "Loading clients..." -showing = "Showing {{shown}} of {{total}} clients" +loading = "Loading apps..." +showing = "Showing {{shown}} of {{total}} apps" status_update_error = "Failed to update client status" -status_updated = "클라이언트가 {{status}}되었습니다." +status_updated = "앱이 {{status}}되었습니다." [msg.dev.clients.consents] empty = "No consents found." @@ -257,19 +257,19 @@ help = "인증 후 리다이렉트될 URI를 입력하세요. 생성 후 Connect [msg.dev.clients.general.scopes] empty = "등록된 스코프가 없습니다." -subtitle = "이 클라이언트가 요청할 수 있는 권한 범위를 정의합니다." +subtitle = "이 앱이 요청할 수 있는 권한 범위를 정의합니다." [msg.dev.clients.general.security] confidential_help = "서버 사이드 앱(예: Node.js, Java)처럼 비밀키를 안전하게 보관 가능한 경우." public_help = "SPA/모바일 앱처럼 비밀키 보관이 어려운 경우. PKCE를 기본 사용합니다." -subtitle = "클라이언트 유형을 선택하세요. 보안 수준에 따라 인증 방식이 달라집니다." +subtitle = "앱 유형을 선택하세요. 보안 수준에 따라 인증 방식이 달라집니다." [msg.dev.clients.help] docs_body = "Includes PKCE, client_secret_basic, redirect URI validation tips." subtitle = "Developer guides for Confidential/Public clients, redirect URIs, and auth methods." [msg.dev.clients.registry] -description = "OIDC 클라이언트, 인증 방식, 리다이렉트 URI, 비밀키 재발행을 감사 로그와 함께 관리합니다." +description = "OIDC 앱, 인증 방식, 리다이렉트 URI, 비밀키 재발행을 감사 로그와 함께 관리합니다." [msg.dev.clients.scopes] email = "이메일 주소 접근" @@ -291,7 +291,7 @@ hydra_health = "Hydra Admin 상태 체크 준비" [msg.dev.sidebar] notice = "개발자 전용 콘솔입니다." -notice_detail = "클라이언트 애플리케이션 등록 및 관리를 수행할 수 있습니다." +notice_detail = "연동 앱 등록 및 관리를 수행할 수 있습니다." [msg.info] saved_success = "저장이 완료되었습니다." @@ -927,10 +927,13 @@ console_title = "Developer Console" env_badge = "Env: dev" scope_badge = "Scoped to /dev" +[ui.dev.nav] +clients = "연동 앱" + [ui.dev.clients] copy_client_id = "Copy client id" -new = "새 클라이언트" -search_placeholder = "클라이언트 이름/ID로 검색..." +new = "연동 앱 추가" +search_placeholder = "연동 앱 이름/ID로 검색..." tenant_scoped = "Tenant-scoped" untitled = "Untitled" @@ -973,13 +976,13 @@ user = "User" [ui.dev.clients.details] [ui.dev.clients.details.breadcrumb] -current = "클라이언트 상세" +current = "연동 앱 상세" section = "Relying Parties" [ui.dev.clients.details.credentials] client_id = "Client ID" client_secret = "Client Secret" -title = "클라이언트 자격 증명" +title = "앱 자격 증명" [ui.dev.clients.details.endpoints] read_only = "읽기 전용" @@ -1006,8 +1009,8 @@ consents = "Consent & Users" settings = "Settings" [ui.dev.clients.general] -create = "클라이언트 생성" -display_new = "새 클라이언트" +create = "앱 생성" +display_new = "연동 앱 추가" save = "설정 저장" title_create = "Create Client" title_edit = "Client Settings" @@ -1055,7 +1058,7 @@ title = "Need help with OIDC configuration?" view_guides = "View guides" [ui.dev.clients.list] -title = "클라이언트 목록" +title = "연동 앱 목록" [ui.dev.clients.owner] avatar_alt = "ops user" diff --git a/locales/template.toml b/locales/template.toml index d3f46c56..3e3f25f7 100644 --- a/locales/template.toml +++ b/locales/template.toml @@ -939,6 +939,9 @@ console_title = "" env_badge = "" scope_badge = "" +[ui.dev.nav] +clients = "" + [ui.dev.clients] copy_client_id = "" new = "" From 9dbd53985500fe3ce6d54259d3776791effd1292 Mon Sep 17 00:00:00 2001 From: kyy Date: Fri, 20 Feb 2026 17:13:06 +0900 Subject: [PATCH 2/9] =?UTF-8?q?Devfront=EC=9D=98=20scope=20table=20delete?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devfront/src/locales/en.toml | 1 + devfront/src/locales/ko.toml | 1 + devfront/src/locales/template.toml | 1 + locales/en.toml | 1 + locales/ko.toml | 1 + locales/template.toml | 1 + 6 files changed, 6 insertions(+) diff --git a/devfront/src/locales/en.toml b/devfront/src/locales/en.toml index a0d48f24..b07cd823 100644 --- a/devfront/src/locales/en.toml +++ b/devfront/src/locales/en.toml @@ -1046,6 +1046,7 @@ title = "Scopes" description = "Description" mandatory = "Mandatory" name = "Scope Name" +delete = "Delete" [ui.dev.clients.general.security] confidential = "Confidential" diff --git a/devfront/src/locales/ko.toml b/devfront/src/locales/ko.toml index e385eb88..415dad5a 100644 --- a/devfront/src/locales/ko.toml +++ b/devfront/src/locales/ko.toml @@ -1046,6 +1046,7 @@ title = "Scopes" description = "Description" mandatory = "Mandatory" name = "Scope Name" +delete = "Delete" [ui.dev.clients.general.security] confidential = "Confidential" diff --git a/devfront/src/locales/template.toml b/devfront/src/locales/template.toml index 3e3f25f7..9f2cc368 100644 --- a/devfront/src/locales/template.toml +++ b/devfront/src/locales/template.toml @@ -1058,6 +1058,7 @@ title = "" description = "" mandatory = "" name = "" +delete = "" [ui.dev.clients.general.security] confidential = "" diff --git a/locales/en.toml b/locales/en.toml index a0d48f24..b07cd823 100644 --- a/locales/en.toml +++ b/locales/en.toml @@ -1046,6 +1046,7 @@ title = "Scopes" description = "Description" mandatory = "Mandatory" name = "Scope Name" +delete = "Delete" [ui.dev.clients.general.security] confidential = "Confidential" diff --git a/locales/ko.toml b/locales/ko.toml index e385eb88..415dad5a 100644 --- a/locales/ko.toml +++ b/locales/ko.toml @@ -1046,6 +1046,7 @@ title = "Scopes" description = "Description" mandatory = "Mandatory" name = "Scope Name" +delete = "Delete" [ui.dev.clients.general.security] confidential = "Confidential" diff --git a/locales/template.toml b/locales/template.toml index 3e3f25f7..9f2cc368 100644 --- a/locales/template.toml +++ b/locales/template.toml @@ -1058,6 +1058,7 @@ title = "" description = "" mandatory = "" name = "" +delete = "" [ui.dev.clients.general.security] confidential = "" From 870e88360ec792d39bf0814ebc80a8ffe47cbeb5 Mon Sep 17 00:00:00 2001 From: kyy Date: Fri, 20 Feb 2026 17:13:48 +0900 Subject: [PATCH 3/9] =?UTF-8?q?=EC=A4=91=EB=B3=B5=20scope=20name=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=EB=B0=8F=20DELETE=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devfront/src/features/clients/ClientGeneralPage.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/devfront/src/features/clients/ClientGeneralPage.tsx b/devfront/src/features/clients/ClientGeneralPage.tsx index 1bcefe66..341df6d3 100644 --- a/devfront/src/features/clients/ClientGeneralPage.tsx +++ b/devfront/src/features/clients/ClientGeneralPage.tsx @@ -376,7 +376,6 @@ function ClientGeneralPage() { - - From c9a42ee23247435c5a0324aa2dc0f5d2bdd8381b Mon Sep 17 00:00:00 2001 From: kyy Date: Fri, 20 Feb 2026 17:42:17 +0900 Subject: [PATCH 4/9] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=95=84=EC=9B=83=20?= =?UTF-8?q?=EB=A1=9C=EC=BC=80=EC=9D=BC=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devfront/src/locales/en.toml | 2 ++ devfront/src/locales/ko.toml | 2 ++ devfront/src/locales/template.toml | 2 ++ locales/en.toml | 2 ++ locales/ko.toml | 2 ++ locales/template.toml | 2 ++ 6 files changed, 12 insertions(+) diff --git a/devfront/src/locales/en.toml b/devfront/src/locales/en.toml index b07cd823..7e631c5f 100644 --- a/devfront/src/locales/en.toml +++ b/devfront/src/locales/en.toml @@ -205,6 +205,7 @@ saving = "Saving..." unknown_error = "unknown error" [msg.dev] +logout_confirm = "Are you sure you want to log out?" [msg.dev.clients] copy_client_id = "Copy Client Id" @@ -929,6 +930,7 @@ scope_badge = "Scoped to /dev" [ui.dev.nav] clients = "Connected Application" +logout = "Logout" [ui.dev.clients] copy_client_id = "Copy client id" diff --git a/devfront/src/locales/ko.toml b/devfront/src/locales/ko.toml index 415dad5a..3b8c67ce 100644 --- a/devfront/src/locales/ko.toml +++ b/devfront/src/locales/ko.toml @@ -205,6 +205,7 @@ saving = "저장 중..." unknown_error = "unknown error" [msg.dev] +logout_confirm = "로그아웃 하시겠습니까?" [msg.dev.clients] copy_client_id = "Client ID가 복사되었습니다." @@ -929,6 +930,7 @@ scope_badge = "Scoped to /dev" [ui.dev.nav] clients = "연동 앱" +logout = "로그아웃" [ui.dev.clients] copy_client_id = "Copy client id" diff --git a/devfront/src/locales/template.toml b/devfront/src/locales/template.toml index 9f2cc368..9be91357 100644 --- a/devfront/src/locales/template.toml +++ b/devfront/src/locales/template.toml @@ -205,6 +205,7 @@ saving = "" unknown_error = "" [msg.dev] +logout_confirm = "" [msg.dev.clients] copy_client_id = "" @@ -941,6 +942,7 @@ scope_badge = "" [ui.dev.nav] clients = "" +logout = "" [ui.dev.clients] copy_client_id = "" diff --git a/locales/en.toml b/locales/en.toml index b07cd823..657ad5d5 100644 --- a/locales/en.toml +++ b/locales/en.toml @@ -205,6 +205,7 @@ saving = "Saving..." unknown_error = "unknown error" [msg.dev] +logout_confirm: "Are you sure you want to log out?" [msg.dev.clients] copy_client_id = "Copy Client Id" @@ -929,6 +930,7 @@ scope_badge = "Scoped to /dev" [ui.dev.nav] clients = "Connected Application" +logout = "Logout" [ui.dev.clients] copy_client_id = "Copy client id" diff --git a/locales/ko.toml b/locales/ko.toml index 415dad5a..3b8c67ce 100644 --- a/locales/ko.toml +++ b/locales/ko.toml @@ -205,6 +205,7 @@ saving = "저장 중..." unknown_error = "unknown error" [msg.dev] +logout_confirm = "로그아웃 하시겠습니까?" [msg.dev.clients] copy_client_id = "Client ID가 복사되었습니다." @@ -929,6 +930,7 @@ scope_badge = "Scoped to /dev" [ui.dev.nav] clients = "연동 앱" +logout = "로그아웃" [ui.dev.clients] copy_client_id = "Copy client id" diff --git a/locales/template.toml b/locales/template.toml index 9f2cc368..9be91357 100644 --- a/locales/template.toml +++ b/locales/template.toml @@ -205,6 +205,7 @@ saving = "" unknown_error = "" [msg.dev] +logout_confirm = "" [msg.dev.clients] copy_client_id = "" @@ -941,6 +942,7 @@ scope_badge = "" [ui.dev.nav] clients = "" +logout = "" [ui.dev.clients] copy_client_id = "" From 8d8c64ec274dab6055ccdfed96c594fd5e4b9096 Mon Sep 17 00:00:00 2001 From: kyy Date: Fri, 20 Feb 2026 17:42:35 +0900 Subject: [PATCH 5/9] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=95=84=EC=9B=83=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devfront/src/components/layout/AppLayout.tsx | 124 +++++++++++-------- 1 file changed, 74 insertions(+), 50 deletions(-) diff --git a/devfront/src/components/layout/AppLayout.tsx b/devfront/src/components/layout/AppLayout.tsx index e71b625f..16bd3a9d 100644 --- a/devfront/src/components/layout/AppLayout.tsx +++ b/devfront/src/components/layout/AppLayout.tsx @@ -1,7 +1,7 @@ import { BadgeCheck, LogOut, Moon, ShieldHalf, Sun } from "lucide-react"; import { useEffect, useState } from "react"; import { useAuth } from "react-oidc-context"; -import { NavLink, Outlet } from "react-router-dom"; +import { NavLink, Outlet, useNavigate } from "react-router-dom"; import { t } from "../../lib/i18n"; import LanguageSelector from "../common/LanguageSelector"; import { Toaster } from "../ui/toaster"; @@ -16,11 +16,22 @@ const navItems = [ ]; function AppLayout() { + const auth = useAuth(); + const navigate = useNavigate(); const [theme, setTheme] = useState<"light" | "dark">(() => { const stored = window.localStorage.getItem("admin_theme"); return stored === "dark" ? "dark" : "light"; }); + const handleLogout = () => { + if ( + window.confirm(t("msg.dev.logout_confirm", "로그아웃 하시겠습니까?")) + ) { + auth.removeUser(); + navigate("/login"); + } + }; + useEffect(() => { const root = document.documentElement; root.classList.remove("light", "dark"); @@ -38,60 +49,73 @@ function AppLayout() { return (
-
From c53f7b86db763c2b2690a18e74db592dac2ddabf Mon Sep 17 00:00:00 2001 From: kyy Date: Mon, 23 Feb 2026 09:07:26 +0900 Subject: [PATCH 8/9] =?UTF-8?q?devfront=20=EA=B3=B5=EB=B0=B1=20=EB=9D=BC?= =?UTF-8?q?=EC=9D=B8=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devfront/src/components/layout/AppLayout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devfront/src/components/layout/AppLayout.tsx b/devfront/src/components/layout/AppLayout.tsx index 6fa5a481..e0a1d7bb 100644 --- a/devfront/src/components/layout/AppLayout.tsx +++ b/devfront/src/components/layout/AppLayout.tsx @@ -104,7 +104,7 @@ function AppLayout() {

- +
Scope Name {t( "ui.dev.clients.general.scopes.table.name", @@ -395,7 +394,11 @@ function ClientGeneralPage() { "Mandatory", )} + + {t("ui.dev.clients.general.scopes.table.delete", + "Delete", + )} +
- {t("ui.dev.clients.general.scopes.table.delete", - "Delete", - )} + {t("ui.dev.clients.general.scopes.table.delete", "Delete")}