From 53dacda5d51dcbab1a1106f96c23fded4a4607c3 Mon Sep 17 00:00:00 2001 From: chan Date: Wed, 20 May 2026 13:25:21 +0900 Subject: [PATCH 1/3] feat(adminfront): add Data Management menu to User tab This commit introduces a 'Data Management' dropdown menu to the User list page, consolidating user CSV import, template download, and export actions. It aligns the UI with the existing Tenant list page. --- .../src/features/users/UserListPage.tsx | 76 +++++++++++++------ .../users/components/UserBulkUploadModal.tsx | 25 ++++-- 2 files changed, 74 insertions(+), 27 deletions(-) diff --git a/adminfront/src/features/users/UserListPage.tsx b/adminfront/src/features/users/UserListPage.tsx index 6142e93c..7e30b90c 100644 --- a/adminfront/src/features/users/UserListPage.tsx +++ b/adminfront/src/features/users/UserListPage.tsx @@ -7,7 +7,9 @@ import { ChevronDown, ChevronLeft, ChevronRight, + Download, FileDown, + FileSpreadsheet, LayoutDashboard, Plus, RefreshCw, @@ -15,6 +17,7 @@ import { Settings2, ShieldCheck, Trash2, + Upload, } from "lucide-react"; import * as React from "react"; import { Link, useNavigate } from "react-router-dom"; @@ -90,7 +93,10 @@ import { } from "../../lib/adminApi"; import { t } from "../../lib/i18n"; import { isSuperAdminRole } from "../../lib/roles"; -import { UserBulkUploadModal } from "./components/UserBulkUploadModal"; +import { + UserBulkUploadModal, + downloadUserTemplate, +} from "./components/UserBulkUploadModal"; import { normalizeUserStatusValue, type UserStatusValue, @@ -485,27 +491,53 @@ function UserListPage() { {t("ui.common.refresh", "새로고침")} - - - query.refetch()} /> + + + + + + + + {t("ui.admin.users.csv_template", "템플릿 다운로드")} + + + query.refetch()} + /> + + handleExport(false)} + disabled={exportMutation.isPending} + data-testid="user-export-menu-item" + className="cursor-pointer" + > + + {t("ui.common.export_without_ids", "UUID 제외 내보내기")} + + handleExport(true)} + disabled={exportMutation.isPending} + data-testid="user-export-with-ids-menu-item" + className="cursor-pointer" + > + + {t("ui.common.export_with_ids", "UUID 포함 내보내기")} + + + - -