diff --git a/devfront/src/features/audit/AuditLogsPage.tsx b/devfront/src/features/audit/AuditLogsPage.tsx index be816dda..e8c2b5d1 100644 --- a/devfront/src/features/audit/AuditLogsPage.tsx +++ b/devfront/src/features/audit/AuditLogsPage.tsx @@ -20,9 +20,6 @@ import { Button } from "../../components/ui/button"; import { Card, CardContent, - CardDescription, - CardHeader, - CardTitle, } from "../../components/ui/card"; import { Input } from "../../components/ui/input"; import { @@ -33,6 +30,7 @@ import { TableHeader, TableRow, } from "../../components/ui/table"; +import { PageHeader } from "../../../../common/core/components/page"; import type { DevAuditLog } from "../../lib/devApi"; import { fetchDevAuditLogs } from "../../lib/devApi"; import { t } from "../../lib/i18n"; @@ -194,23 +192,15 @@ function AuditLogsPage() { return (
- - -
-

- {t("ui.dev.audit.registry.title", "Audit registry")} -

- - {t("ui.dev.audit.title", "Audit Logs")} - - - {t( - "msg.dev.audit.subtitle", - "Shows DevFront activity history within current tenant/app scope.", - )} - -
-
+ {t("msg.dev.audit.loaded_count", "Loaded {{count}} rows", { count: logs.length, @@ -231,9 +221,12 @@ function AuditLogsPage() { {t("ui.dev.clients.consents.export_csv", "Export CSV")} -
-
- + + } + /> + + +
{ e.preventDefault(); diff --git a/devfront/src/features/clients/ClientsPage.tsx b/devfront/src/features/clients/ClientsPage.tsx index 67cae2fd..0806b2d6 100644 --- a/devfront/src/features/clients/ClientsPage.tsx +++ b/devfront/src/features/clients/ClientsPage.tsx @@ -9,6 +9,7 @@ import { sortableTableHeadBaseClassName, sortableTableHeaderClassName, } from "../../../../common/core/components/sort"; +import { PageHeader } from "../../../../common/core/components/page"; import { type SortConfig, type SortResolverMap, @@ -259,37 +260,30 @@ function ClientsPage() { return (
+ navigate("/clients/new")} + > + + {t("ui.dev.clients.new", "새 클라이언트")} + + ) : null + } + /> + - -
-
-

- {t("ui.dev.clients.registry.title", "RP registry")} -

- - {t("ui.dev.clients.registry.subtitle", "연동 앱")} - - - {t( - "msg.dev.clients.registry.description", - "OIDC 클라이언트, 인증 방식, 리다이렉트 URI, 비밀키 재발행을 감사 로그와 함께 관리합니다.", - )} - -
- {canCreateClient && ( -
- -
- )} -
-
+ +
@@ -437,14 +431,6 @@ function ClientsPage() { )}
- {canCreateClient && ( -
- -
- )}
diff --git a/devfront/src/features/developer-request/DeveloperRequestPage.tsx b/devfront/src/features/developer-request/DeveloperRequestPage.tsx index a9d032da..44e76456 100644 --- a/devfront/src/features/developer-request/DeveloperRequestPage.tsx +++ b/devfront/src/features/developer-request/DeveloperRequestPage.tsx @@ -32,6 +32,7 @@ import { commonTableShellClass, commonTableViewportClass, } from "../../../../common/ui/table"; +import { PageHeader } from "../../../../common/core/components/page"; import { Textarea } from "../../components/ui/textarea"; import { approveDeveloperRequest, @@ -158,30 +159,28 @@ export default function DeveloperRequestPage() { return (
-
-
-

- {t("ui.dev.nav.developer_request", "개발자 권한 신청")} -

-

- {isSuperAdmin - ? t( - "msg.dev.request.admin_desc", - "사용자들의 개발자 권한 신청 내역을 관리합니다.", - ) - : t( - "msg.dev.request.user_desc", - "내 신청 내역을 확인하고 새로운 권한을 신청할 수 있습니다.", - )} -

-
- {!isSuperAdmin && !hasActiveRequest && ( - - )} -
+ setIsRequestModalOpen(true)}> + + {t("ui.dev.welcome.btn_request", "신규 신청하기")} + + ) : null + } + />