@trackunit/react-table 0.0.158 → 0.0.160
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 +34 -3
- package/index.esm.js +35 -6
- package/package.json +2 -2
- package/src/utils.d.ts +22 -1
package/index.cjs.js
CHANGED
|
@@ -643,6 +643,13 @@ const useTable = (_a) => {
|
|
|
643
643
|
const [columnOrder, setColumnOrder] = React.useState(((_c = reactTableProps.state) === null || _c === void 0 ? void 0 : _c.columnOrder) || (initialState === null || initialState === void 0 ? void 0 : initialState.columnOrder) || []);
|
|
644
644
|
const [sorting, setSorting] = React.useState(((_d = reactTableProps.state) === null || _d === void 0 ? void 0 : _d.sorting) || (initialState === null || initialState === void 0 ? void 0 : initialState.sorting) || []);
|
|
645
645
|
const [columnSizing, setColumnSizing] = React.useState(((_e = reactTableProps.state) === null || _e === void 0 ? void 0 : _e.columnSizing) || (initialState === null || initialState === void 0 ? void 0 : initialState.columnSizing) || {});
|
|
646
|
+
const isFirstRender = reactComponents.useIsFirstRender();
|
|
647
|
+
const tableColumnRef = React.useRef(columns);
|
|
648
|
+
React.useEffect(() => {
|
|
649
|
+
if (process.env.NODE_ENV !== "production") {
|
|
650
|
+
if (!isFirstRender && tableColumnRef.current !== columns) ;
|
|
651
|
+
}
|
|
652
|
+
}, [isFirstRender, columns]);
|
|
646
653
|
React.useEffect(() => {
|
|
647
654
|
if (initialState && Object.keys(initialState || {}).length > 0) {
|
|
648
655
|
setColumnVisibility(Object.keys(initialState.columnVisibility || {}).length > 0
|
|
@@ -673,9 +680,10 @@ const useTable = (_a) => {
|
|
|
673
680
|
onTableStateChange(state);
|
|
674
681
|
}
|
|
675
682
|
}, [onTableStateChange, state]);
|
|
676
|
-
|
|
677
|
-
table
|
|
678
|
-
};
|
|
683
|
+
const memoizedTable = React.useMemo(() => {
|
|
684
|
+
return { table };
|
|
685
|
+
}, [table]);
|
|
686
|
+
return memoizedTable;
|
|
679
687
|
};
|
|
680
688
|
|
|
681
689
|
//TODO: find a more appropriate place for this file
|
|
@@ -698,6 +706,27 @@ const fromTUSortToTanStack = (input) => {
|
|
|
698
706
|
const fromTanStackToTUSort = (input) => {
|
|
699
707
|
return Object.assign(Object.assign({}, reactCoreContextsApi.validateStringAsAssetSortByProperty(input[0].id)), { order: input[0].desc ? reactCoreContextsApi.SortOrder.Desc : reactCoreContextsApi.SortOrder.Asc });
|
|
700
708
|
};
|
|
709
|
+
/**
|
|
710
|
+
* Convert a sorting state from the TUSort format to the TanStack format for sites.
|
|
711
|
+
*
|
|
712
|
+
* @param {SortingState} input - The input sorting state in TUSort format.
|
|
713
|
+
* @returns {TanStackSortingState} The sorting state in TanStack format.
|
|
714
|
+
*/
|
|
715
|
+
const fromTUSortToTanStackSite = (input) => {
|
|
716
|
+
return [{ id: input.sortBy, desc: input.order === reactCoreContextsApi.SortOrder.Desc }];
|
|
717
|
+
};
|
|
718
|
+
/**
|
|
719
|
+
* Convert a sorting state from the TanStack format to the TUSort format for sites.
|
|
720
|
+
*
|
|
721
|
+
* @param {TanStackSortingState} input - The input sorting state in TanStack format.
|
|
722
|
+
* @returns {SortingState} The sorting state in TUSort format.
|
|
723
|
+
*/
|
|
724
|
+
const fromTanStackToTUSortSite = (input) => {
|
|
725
|
+
return {
|
|
726
|
+
sortBy: reactCoreContextsApi.validateStringAsSiteSortByProperty(input[0].id),
|
|
727
|
+
order: input[0].desc ? reactCoreContextsApi.SortOrder.Desc : reactCoreContextsApi.SortOrder.Asc,
|
|
728
|
+
};
|
|
729
|
+
};
|
|
701
730
|
|
|
702
731
|
/*
|
|
703
732
|
* ----------------------------
|
|
@@ -718,6 +747,8 @@ exports.RowSpacing = RowSpacing;
|
|
|
718
747
|
exports.Sorting = Sorting;
|
|
719
748
|
exports.Table = Table;
|
|
720
749
|
exports.fromTUSortToTanStack = fromTUSortToTanStack;
|
|
750
|
+
exports.fromTUSortToTanStackSite = fromTUSortToTanStackSite;
|
|
721
751
|
exports.fromTanStackToTUSort = fromTanStackToTUSort;
|
|
752
|
+
exports.fromTanStackToTUSortSite = fromTanStackToTUSortSite;
|
|
722
753
|
exports.useRelayPagination = useRelayPagination;
|
|
723
754
|
exports.useTable = useTable;
|
package/index.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { registerTranslations, useNamespaceTranslation } from '@trackunit/i18n-library-translation';
|
|
3
|
-
import { MenuItem, Icon, Text, Button, useOverflowItems, MoreMenu, MenuList, IconButton, Card, EmptyState, Spinner, Tooltip, Popover, PopoverTrigger, PopoverContent } from '@trackunit/react-components';
|
|
3
|
+
import { MenuItem, Icon, Text, Button, useOverflowItems, MoreMenu, MenuList, IconButton, Card, EmptyState, Spinner, Tooltip, Popover, PopoverTrigger, PopoverContent, useIsFirstRender } from '@trackunit/react-components';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { useMemo, Children, cloneElement, useCallback, useEffect, useRef, useState } from 'react';
|
|
6
6
|
import { cvaMerge } from '@trackunit/css-class-variance-utilities';
|
|
@@ -13,7 +13,7 @@ import { Toggle, RadioGroup, RadioItem } from '@trackunit/react-form-components'
|
|
|
13
13
|
import update from 'immutability-helper';
|
|
14
14
|
import { DndProvider, useDrop, useDrag } from 'react-dnd';
|
|
15
15
|
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
16
|
-
import { SortOrder, validateStringAsAssetSortByProperty } from '@trackunit/react-core-contexts-api';
|
|
16
|
+
import { SortOrder, validateStringAsAssetSortByProperty, validateStringAsSiteSortByProperty } from '@trackunit/react-core-contexts-api';
|
|
17
17
|
|
|
18
18
|
var defaultTranslations = {
|
|
19
19
|
"table.actionsheet.selected": "{{count}} selected",
|
|
@@ -618,6 +618,13 @@ const useTable = (_a) => {
|
|
|
618
618
|
const [columnOrder, setColumnOrder] = useState(((_c = reactTableProps.state) === null || _c === void 0 ? void 0 : _c.columnOrder) || (initialState === null || initialState === void 0 ? void 0 : initialState.columnOrder) || []);
|
|
619
619
|
const [sorting, setSorting] = useState(((_d = reactTableProps.state) === null || _d === void 0 ? void 0 : _d.sorting) || (initialState === null || initialState === void 0 ? void 0 : initialState.sorting) || []);
|
|
620
620
|
const [columnSizing, setColumnSizing] = useState(((_e = reactTableProps.state) === null || _e === void 0 ? void 0 : _e.columnSizing) || (initialState === null || initialState === void 0 ? void 0 : initialState.columnSizing) || {});
|
|
621
|
+
const isFirstRender = useIsFirstRender();
|
|
622
|
+
const tableColumnRef = useRef(columns);
|
|
623
|
+
useEffect(() => {
|
|
624
|
+
if (process.env.NODE_ENV !== "production") {
|
|
625
|
+
if (!isFirstRender && tableColumnRef.current !== columns) ;
|
|
626
|
+
}
|
|
627
|
+
}, [isFirstRender, columns]);
|
|
621
628
|
useEffect(() => {
|
|
622
629
|
if (initialState && Object.keys(initialState || {}).length > 0) {
|
|
623
630
|
setColumnVisibility(Object.keys(initialState.columnVisibility || {}).length > 0
|
|
@@ -648,9 +655,10 @@ const useTable = (_a) => {
|
|
|
648
655
|
onTableStateChange(state);
|
|
649
656
|
}
|
|
650
657
|
}, [onTableStateChange, state]);
|
|
651
|
-
|
|
652
|
-
table
|
|
653
|
-
};
|
|
658
|
+
const memoizedTable = useMemo(() => {
|
|
659
|
+
return { table };
|
|
660
|
+
}, [table]);
|
|
661
|
+
return memoizedTable;
|
|
654
662
|
};
|
|
655
663
|
|
|
656
664
|
//TODO: find a more appropriate place for this file
|
|
@@ -673,6 +681,27 @@ const fromTUSortToTanStack = (input) => {
|
|
|
673
681
|
const fromTanStackToTUSort = (input) => {
|
|
674
682
|
return Object.assign(Object.assign({}, validateStringAsAssetSortByProperty(input[0].id)), { order: input[0].desc ? SortOrder.Desc : SortOrder.Asc });
|
|
675
683
|
};
|
|
684
|
+
/**
|
|
685
|
+
* Convert a sorting state from the TUSort format to the TanStack format for sites.
|
|
686
|
+
*
|
|
687
|
+
* @param {SortingState} input - The input sorting state in TUSort format.
|
|
688
|
+
* @returns {TanStackSortingState} The sorting state in TanStack format.
|
|
689
|
+
*/
|
|
690
|
+
const fromTUSortToTanStackSite = (input) => {
|
|
691
|
+
return [{ id: input.sortBy, desc: input.order === SortOrder.Desc }];
|
|
692
|
+
};
|
|
693
|
+
/**
|
|
694
|
+
* Convert a sorting state from the TanStack format to the TUSort format for sites.
|
|
695
|
+
*
|
|
696
|
+
* @param {TanStackSortingState} input - The input sorting state in TanStack format.
|
|
697
|
+
* @returns {SortingState} The sorting state in TUSort format.
|
|
698
|
+
*/
|
|
699
|
+
const fromTanStackToTUSortSite = (input) => {
|
|
700
|
+
return {
|
|
701
|
+
sortBy: validateStringAsSiteSortByProperty(input[0].id),
|
|
702
|
+
order: input[0].desc ? SortOrder.Desc : SortOrder.Asc,
|
|
703
|
+
};
|
|
704
|
+
};
|
|
676
705
|
|
|
677
706
|
/*
|
|
678
707
|
* ----------------------------
|
|
@@ -683,4 +712,4 @@ const fromTanStackToTUSort = (input) => {
|
|
|
683
712
|
*/
|
|
684
713
|
setupLibraryTranslations();
|
|
685
714
|
|
|
686
|
-
export { ActionSheet, ColumnFilter, RowSpacing, Sorting, Table, fromTUSortToTanStack, fromTanStackToTUSort, useRelayPagination, useTable };
|
|
715
|
+
export { ActionSheet, ColumnFilter, RowSpacing, Sorting, Table, fromTUSortToTanStack, fromTUSortToTanStackSite, fromTanStackToTUSort, fromTanStackToTUSortSite, useRelayPagination, useTable };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/react-table",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.160",
|
|
4
4
|
"repository": "https://github.com/Trackunit/manager",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"engines": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"react-dnd": "14.0.5",
|
|
18
18
|
"react-dnd-html5-backend": "14.1.0",
|
|
19
19
|
"jest-fetch-mock": "^3.0.3",
|
|
20
|
-
"@tanstack/react-virtual": "3.0.0-beta.
|
|
20
|
+
"@tanstack/react-virtual": "3.0.0-beta.68",
|
|
21
21
|
"@trackunit/react-core-contexts-api": "*",
|
|
22
22
|
"@trackunit/css-class-variance-utilities": "*",
|
|
23
23
|
"@trackunit/ui-icons": "*",
|
package/src/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SortingState as TanStackSortingState } from "@tanstack/react-table";
|
|
2
|
-
import { SortingState } from "@trackunit/react-core-contexts-api";
|
|
2
|
+
import { SiteSortByProperty, SortOrder, SortingState } from "@trackunit/react-core-contexts-api";
|
|
3
3
|
/**
|
|
4
4
|
* Convert a sorting state from the TUSort format to the TanStack format.
|
|
5
5
|
*
|
|
@@ -14,3 +14,24 @@ export declare const fromTUSortToTanStack: (input: SortingState) => TanStackSort
|
|
|
14
14
|
* @returns {SortingState} The sorting state in TUSort format.
|
|
15
15
|
*/
|
|
16
16
|
export declare const fromTanStackToTUSort: (input: TanStackSortingState) => SortingState;
|
|
17
|
+
interface SiteSortingState {
|
|
18
|
+
/** The property to sort by. */
|
|
19
|
+
sortBy: SiteSortByProperty;
|
|
20
|
+
/** The property to sort by. */
|
|
21
|
+
order: SortOrder;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Convert a sorting state from the TUSort format to the TanStack format for sites.
|
|
25
|
+
*
|
|
26
|
+
* @param {SortingState} input - The input sorting state in TUSort format.
|
|
27
|
+
* @returns {TanStackSortingState} The sorting state in TanStack format.
|
|
28
|
+
*/
|
|
29
|
+
export declare const fromTUSortToTanStackSite: (input: SiteSortingState) => TanStackSortingState;
|
|
30
|
+
/**
|
|
31
|
+
* Convert a sorting state from the TanStack format to the TUSort format for sites.
|
|
32
|
+
*
|
|
33
|
+
* @param {TanStackSortingState} input - The input sorting state in TanStack format.
|
|
34
|
+
* @returns {SortingState} The sorting state in TUSort format.
|
|
35
|
+
*/
|
|
36
|
+
export declare const fromTanStackToTUSortSite: (input: TanStackSortingState) => SiteSortingState;
|
|
37
|
+
export {};
|