forked from baron/baron-sso
fix(admin): stabilize tenant import report UI and satisfy E2E tests
- Added missing i18n keys for import results in both root and common locales. - Fixed TypeScript type errors and implicit 'any' types in TenantListPage. - Added 'destructive' variant to common Badge component. - Updated Playwright tests with refined locators and enhanced API mocks to match the new reporting structure. - Restored quick summary message in Tenant Registry for backward compatibility.
This commit is contained in:
@@ -85,6 +85,8 @@ import {
|
||||
fetchMe,
|
||||
fetchTenants,
|
||||
importTenantsCSV,
|
||||
type TenantImportDetail,
|
||||
type TenantImportResult,
|
||||
type TenantSummary,
|
||||
updateTenant,
|
||||
} from "../../../lib/adminApi";
|
||||
@@ -297,8 +299,10 @@ function TenantListPage() {
|
||||
if (!importResult) return [];
|
||||
if (importResultFilter === "all") return importResult.details;
|
||||
if (importResultFilter === "failed")
|
||||
return importResult.details.filter((d) => !d.success);
|
||||
return importResult.details.filter((d) => d.action === importResultFilter);
|
||||
return importResult.details.filter((d: TenantImportDetail) => !d.success);
|
||||
return importResult.details.filter(
|
||||
(d: TenantImportDetail) => d.action === importResultFilter,
|
||||
);
|
||||
}, [importResult, importResultFilter]);
|
||||
const [selectedBulkStatus, setSelectedBulkStatus] = React.useState("");
|
||||
const _tenantTableScrollRef = React.useRef<HTMLDivElement | null>(null);
|
||||
@@ -404,6 +408,17 @@ function TenantListPage() {
|
||||
onSuccess: (result) => {
|
||||
setImportResult(result);
|
||||
setImportResultOpen(true);
|
||||
setImportMessage(
|
||||
t(
|
||||
"msg.admin.tenants.import_result",
|
||||
"생성 {{created}}, 갱신 {{updated}}, 실패 {{failed}}",
|
||||
{
|
||||
created: result.created,
|
||||
updated: result.updated,
|
||||
failed: result.failed,
|
||||
},
|
||||
),
|
||||
);
|
||||
setPreviewOpen(false);
|
||||
setPreviewRows([]);
|
||||
setSelectedMatches({});
|
||||
@@ -1135,7 +1150,7 @@ function TenantListPage() {
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
) : (
|
||||
filteredImportDetails.map((detail) => (
|
||||
filteredImportDetails.map((detail: TenantImportDetail) => (
|
||||
<TableRow key={detail.row}>
|
||||
<TableCell className="font-mono text-xs text-muted-foreground">
|
||||
{detail.row}
|
||||
@@ -1173,7 +1188,7 @@ function TenantListPage() {
|
||||
"수정됨:",
|
||||
)}
|
||||
</span>
|
||||
{detail.modifiedFields.map((field) => (
|
||||
{detail.modifiedFields.map((field: string) => (
|
||||
<Badge
|
||||
key={field}
|
||||
variant="outline"
|
||||
|
||||
Reference in New Issue
Block a user