summaryrefslogtreecommitdiff
path: root/components/data-table
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-08-21 06:57:36 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-08-21 06:57:36 +0000
commit02b1cf005cf3e1df64183d20ba42930eb2767a9f (patch)
treee932c54d5260b0e6fda2b46be2a6ba1c3ee30434 /components/data-table
parentd78378ecd7ceede1429359f8058c7a99ac34b1b7 (diff)
(대표님, 최겸) 설계메뉴추가, 작업사항 업데이트
설계메뉴 - 문서관리 설계메뉴 - 벤더 데이터 gtc 메뉴 업데이트 정보시스템 - 메뉴리스트 및 정보 업데이트 파일 라우트 업데이트 엑셀임포트 개선 기본계약 개선 벤더 가입과정 변경 및 개선 벤더 기본정보 - pq 돌체 오류 수정 및 개선 벤더 로그인 과정 이메일 오류 수정
Diffstat (limited to 'components/data-table')
-rw-r--r--components/data-table/data-table-view-options.tsx25
1 files changed, 15 insertions, 10 deletions
diff --git a/components/data-table/data-table-view-options.tsx b/components/data-table/data-table-view-options.tsx
index b689adab..592933f2 100644
--- a/components/data-table/data-table-view-options.tsx
+++ b/components/data-table/data-table-view-options.tsx
@@ -80,12 +80,14 @@ export function DataTableViewOptions<TData>({
const hideableCols = React.useMemo(() => {
return table
.getAllLeafColumns()
- .filter((col) => col.getCanHide())
- }, [table])
+ .filter((col) => col.getCanHide())
+ }, [table.getAllLeafColumns().map(c => c.id).join(',')])
+
// 2) local state for "columnOrder" (just the ID of hideable columns)
// We'll reorder these with drag & drop
+ const isInitialized = React.useRef(false)
const [columnOrder, setColumnOrder] = React.useState<string[]>(() =>
hideableCols.map((c) => c.id)
)
@@ -107,21 +109,24 @@ export function DataTableViewOptions<TData>({
// 4) After local state changes, reflect in tanstack table
// - We do this in useEffect to avoid "update a different component" error
React.useEffect(() => {
- // Also consider "non-hideable" columns, if any, to keep them in original positions
+ if (!isInitialized.current) {
+ isInitialized.current = true
+ return
+ }
+
const nonHideable = table
.getAllColumns()
.filter((col) => !hideableCols.some((hc) => hc.id === col.id))
.map((c) => c.id)
- // e.g. place nonHideable at the front, then our local hideable order
const finalOrder = [...nonHideable, ...columnOrder]
+ const currentOrder = table.getState().columnOrder
- // Now we set the table's official column order
- if (!deepEqual(table.getState().columnOrder, finalOrder)) {
- table.setColumnOrder(finalOrder)
- resetAutoSize?.()
- }
- }, [columnOrder, hideableCols.join("|"), table, resetAutoSize])
+ if (!deepEqual(currentOrder, finalOrder)) {
+ table.setColumnOrder(finalOrder)
+ resetAutoSize?.()
+ }
+ }, [columnOrder,hideableCols.map(c => c.id).join(','),resetAutoSize])
return (