@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 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
- return {
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
- return {
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.158",
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.66",
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 {};