summaryrefslogtreecommitdiff
path: root/lib/roles/table/roles-table.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-07-15 10:07:09 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-07-15 10:07:09 +0000
commit4eb7532f822c821fb6b69bf103bd075fefba769b (patch)
treeb4bcf6c0bf791d71569f3f35498ed256bf7cfaf3 /lib/roles/table/roles-table.tsx
parent660c7888d885badab7af3e96f9c16bd0172ad0f1 (diff)
(대표님) 20250715 협력사 정기평가, spreadJS, roles 서비스에 함수 추가
Diffstat (limited to 'lib/roles/table/roles-table.tsx')
-rw-r--r--lib/roles/table/roles-table.tsx60
1 files changed, 22 insertions, 38 deletions
diff --git a/lib/roles/table/roles-table.tsx b/lib/roles/table/roles-table.tsx
index cd7c2a3b..3386d439 100644
--- a/lib/roles/table/roles-table.tsx
+++ b/lib/roles/table/roles-table.tsx
@@ -13,17 +13,15 @@ import { DataTable } from "@/components/data-table/data-table"
import { DataTableAdvancedToolbar } from "@/components/data-table/data-table-advanced-toolbar"
import { DataTableToolbar } from "@/components/data-table/data-table-toolbar"
-
import { getRolesWithCount } from "@/lib/roles/services"
import { getColumns } from "./roles-table-columns"
import { RoleTableToolbarActions } from "./role-table-toolbar-actions"
import { UpdateRolesSheet } from "./update-roles-sheet"
-import { AssignRolesSheet } from "./assign-roles-sheet"
+import { ManageRoleSheet } from "./assign-roles-sheet" // 업데이트된 컴포넌트
import { getUsersAll } from "@/lib/users/service"
import { DeleteRolesDialog } from "./delete-roles-dialog"
import { RoleView } from "@/db/schema/users"
-
interface RolesTableProps {
promises: Promise<
[
@@ -31,16 +29,15 @@ interface RolesTableProps {
]
>
promises2: Promise<
- [
- Awaited<ReturnType<typeof getUsersAll>>,
- ]
->
+ [
+ Awaited<ReturnType<typeof getUsersAll>>,
+ ]
+ >
}
-export function RolesTable({ promises ,promises2 }: RolesTableProps) {
+export function RolesTable({ promises, promises2 }: RolesTableProps) {
- const [{ data, pageCount }] =
- React.use(promises)
+ const [{ data, pageCount }] = React.use(promises)
const [rowAction, setRowAction] =
React.useState<DataTableRowAction<RoleView> | null>(null)
@@ -50,7 +47,6 @@ export function RolesTable({ promises ,promises2 }: RolesTableProps) {
[setRowAction]
)
-
/**
* This component can render either a faceted filter or a search filter based on the `options` prop.
*
@@ -68,7 +64,6 @@ export function RolesTable({ promises ,promises2 }: RolesTableProps) {
label: "Role Name",
placeholder: "Filter role name...",
},
-
]
/**
@@ -87,19 +82,16 @@ export function RolesTable({ promises ,promises2 }: RolesTableProps) {
label: "Role Name",
type: "text",
},
-
{
id: "domain",
label: "룰 도메인",
type: "text",
},
-
{
id: "company_name",
label: "회사명",
type: "text",
},
-
{
id: "created_at",
label: "Created at",
@@ -107,7 +99,6 @@ export function RolesTable({ promises ,promises2 }: RolesTableProps) {
},
]
-
const { table } = useDataTable({
data,
columns,
@@ -126,10 +117,7 @@ export function RolesTable({ promises ,promises2 }: RolesTableProps) {
return (
<>
- <DataTable
- table={table}
-
- >
+ <DataTable table={table}>
<DataTableAdvancedToolbar
table={table}
filterFields={advancedFilterFields}
@@ -137,21 +125,21 @@ export function RolesTable({ promises ,promises2 }: RolesTableProps) {
>
<RoleTableToolbarActions table={table} />
</DataTableAdvancedToolbar>
+ </DataTable>
- </DataTable>
-
- <UpdateRolesSheet
- open={rowAction?.type === "update"}
- onOpenChange={() => setRowAction(null)}
- role={rowAction?.row.original ?? null}
- />
+ <UpdateRolesSheet
+ open={rowAction?.type === "update"}
+ onOpenChange={() => setRowAction(null)}
+ role={rowAction?.row.original ?? null}
+ />
- <AssignRolesSheet
- open={rowAction?.type === "user"}
- onOpenChange={() => setRowAction(null)}
- role={rowAction?.row.original ?? null}
- assignedTablePromises={promises2}
- />
+ {/* 업데이트된 ManageRoleSheet - 모드 토글 지원 */}
+ <ManageRoleSheet
+ open={rowAction?.type === "user"}
+ allUsersPromises={promises2}
+ onOpenChange={() => setRowAction(null)}
+ role={rowAction?.row.original ?? null}
+ />
<DeleteRolesDialog
open={rowAction?.type === "delete"}
@@ -160,10 +148,6 @@ export function RolesTable({ promises ,promises2 }: RolesTableProps) {
showTrigger={false}
onSuccess={() => rowAction?.row.toggleSelected(false)}
/>
-
-
-
-
</>
)
-}
+} \ No newline at end of file