diff options
Diffstat (limited to 'lib/docu-list-rule/code-groups/table/code-groups-table.tsx')
| -rw-r--r-- | lib/docu-list-rule/code-groups/table/code-groups-table.tsx | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/lib/docu-list-rule/code-groups/table/code-groups-table.tsx b/lib/docu-list-rule/code-groups/table/code-groups-table.tsx index 8873c34c..0029ed91 100644 --- a/lib/docu-list-rule/code-groups/table/code-groups-table.tsx +++ b/lib/docu-list-rule/code-groups/table/code-groups-table.tsx @@ -9,10 +9,10 @@ import type { DataTableFilterField, DataTableRowAction, } from "@/types/table" -import { getColumns } from "./code-groups-table-columns"; -import { DeleteCodeGroupsDialog } from "./delete-code-groups-dialog"; -import { CodeGroupsEditSheet } from "./code-groups-edit-sheet"; -import { CodeGroupsTableToolbarActions } from "./code-groups-table-toolbar"; +import { getColumns } from "@/lib/docu-list-rule/code-groups/table/code-groups-table-columns"; +import { DeleteCodeGroupsDialog } from "@/lib/docu-list-rule/code-groups/table/delete-code-groups-dialog"; +import { CodeGroupsEditSheet } from "@/lib/docu-list-rule/code-groups/table/code-groups-edit-sheet"; +import { CodeGroupsTableToolbarActions } from "@/lib/docu-list-rule/code-groups/table/code-groups-table-toolbar"; import { codeGroups } from "@/db/schema/docu-list-rule"; interface CodeGroupsTableProps { @@ -68,12 +68,34 @@ export function CodeGroupsTable({ promises }: CodeGroupsTableProps) { enableAdvancedFilter: true, initialState: { columnPinning: { right: ["actions"] }, + expanded: {}, }, - getRowId: (originalRow) => String(originalRow.groupId), + getRowId: (originalRow) => String(originalRow.id), shallow: false, - clearOnDefault: true, + clearOnDefault: false, }) + // 컴포넌트 마운트 후 그룹핑 설정 + React.useEffect(() => { + if (data && table.getState().grouping.length === 0) { + table.setGrouping(["projectCode"]) + } + }, [table, data]) + + // 정렬 시 펼쳐진 상태 유지 + React.useEffect(() => { + const currentExpanded = table.getState().expanded + if (Object.keys(currentExpanded).length > 0) { + // 약간의 지연 후 현재 펼쳐진 상태를 다시 설정 + const timer = setTimeout(() => { + table.setExpanded(currentExpanded) + }, 100) + return () => clearTimeout(timer) + } + }, [table.getState().sorting, table]) + + + return ( <> <DataTable table={table}> |
