import { useQuery } from "@tanstack/react-query"; import { Building2, Plus, Users } from "lucide-react"; import { Link } from "react-router-dom"; import { commonStickyTableHeaderClass } from "../../../../../common/ui/table"; import { Badge } from "../../../components/ui/badge"; import { Button } from "../../../components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "../../../components/ui/card"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "../../../components/ui/table"; import { fetchAllTenants, fetchGroups, type TenantSummary, } from "../../../lib/adminApi"; export default function GlobalUserGroupListPage() { const { data: tenantList, isLoading: isTenantsLoading } = useQuery({ queryKey: ["admin-tenants"], queryFn: () => fetchAllTenants(), }); if (isTenantsLoading) return
Loading tenants and groups...
; return (

User Groups

모든 테넌트의 유저 그룹을 관리합니다. 권한 상속의 주체가 되는 그룹을 설정하세요.

{tenantList?.items.map((tenant) => ( ))}
); } function TenantGroupCard({ tenant }: { tenant: TenantSummary }) { const { data: groups, isLoading } = useQuery({ queryKey: ["tenant-user-groups", tenant.id], queryFn: () => fetchGroups(tenant.id), }); return (
{tenant.name} {tenant.slug} 이 테넌트에 정의된 유저 그룹 목록입니다.
그룹명 설명 멤버 수 작업 {isLoading ? ( Loading... ) : groups?.length === 0 ? ( 등록된 유저 그룹이 없습니다. ) : ( groups?.map((group) => (
{group.name}
{group.description || "-"} {group.members?.length || 0} 명
)) )}
); }