@trackunit/react-table 2.1.26 → 2.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs.js CHANGED
@@ -510,14 +510,14 @@ const ColumnFilter = ({ columns, setColumnOrder, defaultColumnOrder = [], column
510
510
  };
511
511
  const ColumnFiltersDragAndDrop = ({ columns, setColumnOrder, onUserEvent, isSortDisabled, visibleColumnsCount, }) => {
512
512
  const [localColumns, setLocalColumns] = react.useState(columns);
513
- const latestColumnsRef = react.useRef(columns);
514
- latestColumnsRef.current = columns;
515
- const columnIdsSignature = react.useMemo(() => {
516
- return columns.map(column => column.id).join(",");
517
- }, [columns]);
518
- react.useEffect(() => {
519
- setLocalColumns(latestColumnsRef.current);
520
- }, [columnIdsSignature]);
513
+ const columnIdsSignature = columns.map(column => column.id).join(",");
514
+ // Re-sync only when the set of column ids changes, so in-progress drag
515
+ // reordering isn't clobbered on every `columns` identity change.
516
+ const [prevSignature, setPrevSignature] = react.useState(columnIdsSignature);
517
+ if (columnIdsSignature !== prevSignature) {
518
+ setPrevSignature(columnIdsSignature);
519
+ setLocalColumns(columns);
520
+ }
521
521
  const onColumDrop = react.useCallback(() => {
522
522
  const newColumnOrder = localColumns.map(column => column.id);
523
523
  setColumnOrder(newColumnOrder);
@@ -1285,7 +1285,7 @@ const Table = ({ rowHeight = 50, loading = false, hideFooter = false, style, ...
1285
1285
  } },
1286
1286
  isCellDropTarget(cell.column.id) && renderDropIndicator(cell.column.id),
1287
1287
  jsxRuntime.jsx("div", { className: "grid h-full items-center p-0", children: reactTable.flexRender(cell.column.columnDef.cell, cell.getContext()) })));
1288
- }) }, `${row.id}-${index}`));
1288
+ }) }, row.id));
1289
1289
  }
1290
1290
  }) })) : (jsxRuntime.jsx("tbody", { className: cvaTBody({
1291
1291
  emptyState: !loading && (props.noDataMessage === undefined || props.noDataMessage === ""),
package/index.esm.js CHANGED
@@ -509,14 +509,14 @@ const ColumnFilter = ({ columns, setColumnOrder, defaultColumnOrder = [], column
509
509
  };
510
510
  const ColumnFiltersDragAndDrop = ({ columns, setColumnOrder, onUserEvent, isSortDisabled, visibleColumnsCount, }) => {
511
511
  const [localColumns, setLocalColumns] = useState(columns);
512
- const latestColumnsRef = useRef(columns);
513
- latestColumnsRef.current = columns;
514
- const columnIdsSignature = useMemo(() => {
515
- return columns.map(column => column.id).join(",");
516
- }, [columns]);
517
- useEffect(() => {
518
- setLocalColumns(latestColumnsRef.current);
519
- }, [columnIdsSignature]);
512
+ const columnIdsSignature = columns.map(column => column.id).join(",");
513
+ // Re-sync only when the set of column ids changes, so in-progress drag
514
+ // reordering isn't clobbered on every `columns` identity change.
515
+ const [prevSignature, setPrevSignature] = useState(columnIdsSignature);
516
+ if (columnIdsSignature !== prevSignature) {
517
+ setPrevSignature(columnIdsSignature);
518
+ setLocalColumns(columns);
519
+ }
520
520
  const onColumDrop = useCallback(() => {
521
521
  const newColumnOrder = localColumns.map(column => column.id);
522
522
  setColumnOrder(newColumnOrder);
@@ -1284,7 +1284,7 @@ const Table = ({ rowHeight = 50, loading = false, hideFooter = false, style, ...
1284
1284
  } },
1285
1285
  isCellDropTarget(cell.column.id) && renderDropIndicator(cell.column.id),
1286
1286
  jsx("div", { className: "grid h-full items-center p-0", children: flexRender(cell.column.columnDef.cell, cell.getContext()) })));
1287
- }) }, `${row.id}-${index}`));
1287
+ }) }, row.id));
1288
1288
  }
1289
1289
  }) })) : (jsx("tbody", { className: cvaTBody({
1290
1290
  emptyState: !loading && (props.noDataMessage === undefined || props.noDataMessage === ""),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/react-table",
3
- "version": "2.1.26",
3
+ "version": "2.1.31",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -11,14 +11,14 @@
11
11
  "react-dnd": "16.0.1",
12
12
  "react-dnd-html5-backend": "16.0.1",
13
13
  "tailwind-merge": "^2.0.0",
14
- "@trackunit/react-components": "2.1.24",
15
- "@trackunit/shared-utils": "1.15.30",
16
- "@trackunit/css-class-variance-utilities": "1.13.30",
17
- "@trackunit/ui-icons": "1.13.31",
18
- "@trackunit/react-table-base-components": "2.1.26",
19
- "@trackunit/react-form-components": "2.1.25",
20
- "@trackunit/i18n-library-translation": "2.0.26",
21
- "@trackunit/iris-app-runtime-core-api": "1.16.33"
14
+ "@trackunit/react-components": "2.1.29",
15
+ "@trackunit/shared-utils": "1.15.33",
16
+ "@trackunit/css-class-variance-utilities": "1.13.33",
17
+ "@trackunit/ui-icons": "1.13.35",
18
+ "@trackunit/react-table-base-components": "2.1.31",
19
+ "@trackunit/react-form-components": "2.1.30",
20
+ "@trackunit/i18n-library-translation": "2.0.30",
21
+ "@trackunit/iris-app-runtime-core-api": "1.16.37"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "@tanstack/react-router": "^1.114.29",