@apia/table 4.0.30 → 4.0.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/dist/index.d.ts CHANGED
@@ -323,6 +323,7 @@ type TResponsiveTableContextProps = TResponsiveTableStoreProps & Pick<ISelectabl
323
323
  * Si se pasa selectionHandler, la tabla no realizará ningún control de eventos de teclado o mouse.
324
324
  */
325
325
  SelectionHandler?: FC<TKeyHandlerProps>;
326
+ showFilters?: boolean;
326
327
  variant?: string;
327
328
  };
328
329
  /**
@@ -332,7 +333,7 @@ type TResponsiveTableContextProps = TResponsiveTableStoreProps & Pick<ISelectabl
332
333
  * desee informar de un evento en particular
333
334
  * pueda hacerlo en forma sencilla.
334
335
  */
335
- type TResponsiveTableContext = TModify<Pick<TResponsiveTableContextProps, 'avoidAutoEllipsis' | 'FiltersRenderer' | 'currentBreakPoint' | 'name' | 'onChangeSelection' | 'onFilterBlur' | 'onFilterChange' | 'onFilterPressEnter' | 'onSelectRows' | 'onRowClick' | 'onSortChange' | 'label' | 'SelectionHandler'>, {
336
+ type TResponsiveTableContext = TModify<Pick<TResponsiveTableContextProps, 'avoidAutoEllipsis' | 'FiltersRenderer' | 'currentBreakPoint' | 'name' | 'onChangeSelection' | 'onFilterBlur' | 'onFilterChange' | 'onFilterPressEnter' | 'onSelectRows' | 'onRowClick' | 'onSortChange' | 'label' | 'SelectionHandler' | 'showFilters'>, {
336
337
  labels: typeof defaultLabels;
337
338
  name: string;
338
339
  }>;
@@ -547,7 +548,7 @@ declare const Responsive: React__default.MemoExoticComponent<({ tableName }: {
547
548
  tableName?: string;
548
549
  }) => React__default.JSX.Element>;
549
550
 
550
- declare const Pagination: React__default.MemoExoticComponent<({ listId: outerListId, ...props }: Omit<IPagination, "isMaximized" | "onMaximize"> & {
551
+ declare const Pagination: React__default.MemoExoticComponent<({ listId: outerListId, onPageChange, ...props }: Omit<IPagination, "isMaximized" | "onMaximize"> & {
551
552
  listId: string;
552
553
  }) => React__default.JSX.Element>;
553
554
 
@@ -558,7 +559,7 @@ declare const Grouped: React__default.MemoExoticComponent<({ group, tableName, }
558
559
 
559
560
  declare function getResponsiveTableContext(tableName: string): TResponsiveTableContext;
560
561
  declare function useResponsiveTableContext(tableName?: string): TResponsiveTableContext;
561
- declare const ResponsiveTableContext: React__default.MemoExoticComponent<({ allowEdition, allowRowsKeyboardSorting, avoidAutoEllipsis, allowSelection, allowSorting, avoidReparseSelectionOnRowChange, children, className, currentBreakPoint, customLabels, columns, filters, FiltersRenderer, rows, label, isMultiple, isLoading, name, statesColumns, onChangeSelection, onFilterBlur, onFilterChange, onFilterPressEnter, onRowClick, onSelectRows, onSortChange, reserveColumnsForStates, SelectionHandler, variant, }: TResponsiveTableContextProps) => React__default.JSX.Element>;
562
+ declare const ResponsiveTableContext: React__default.MemoExoticComponent<({ allowEdition, allowRowsKeyboardSorting, avoidAutoEllipsis, allowSelection, allowSorting, avoidReparseSelectionOnRowChange, children, className, currentBreakPoint, customLabels, columns, filters, FiltersRenderer, rows, label, isMultiple, isLoading, name, statesColumns, showFilters, onChangeSelection, onFilterBlur, onFilterChange, onFilterPressEnter, onRowClick, onSelectRows, onSortChange, reserveColumnsForStates, SelectionHandler, variant, }: TResponsiveTableContextProps) => React__default.JSX.Element>;
562
563
 
563
564
  type TPayloadWithId$1<P = Record<string, unknown>, T extends string = string, M = never, E = never> = PayloadAction$1<P & {
564
565
  id: string;
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment } from '@apia/theme/jsx-runtime';
2
- import React, { useMemo, useRef, useState, createContext, useContext, memo, forwardRef, useCallback } from 'react';
2
+ import React, { useMemo, useRef, useState, createContext, useContext, memo, useCallback, useEffect, forwardRef } from 'react';
3
3
  import { Box, getVariant, Input, Select, useBreakpointIndex, Label, Link, Spinner } from '@apia/theme';
4
4
  import { useMount, useUpdateEffect, useUnmount, useThrottleFn } from 'ahooks';
5
5
  import uniqueId from 'lodash-es/uniqueId';
@@ -465,6 +465,7 @@ const NoMemoResponsiveTableContext = ({
465
465
  isLoading,
466
466
  name,
467
467
  statesColumns,
468
+ showFilters,
468
469
  onChangeSelection,
469
470
  onFilterBlur,
470
471
  onFilterChange,
@@ -501,15 +502,16 @@ const NoMemoResponsiveTableContext = ({
501
502
  onSortChange,
502
503
  SelectionHandler,
503
504
  statesColumns,
504
- isLoading
505
+ isLoading,
506
+ showFilters
505
507
  }),
506
508
  [
507
509
  currentBreakPoint,
508
510
  label,
509
511
  labels,
510
512
  avoidAutoEllipsis,
511
- actualName,
512
513
  FiltersRenderer,
514
+ actualName,
513
515
  onChangeSelection,
514
516
  onFilterBlur,
515
517
  onFilterChange,
@@ -519,7 +521,8 @@ const NoMemoResponsiveTableContext = ({
519
521
  onSortChange,
520
522
  SelectionHandler,
521
523
  statesColumns,
522
- isLoading
524
+ isLoading,
525
+ showFilters
523
526
  ]
524
527
  );
525
528
  tableContexts[actualName] = contextValue;
@@ -1647,7 +1650,7 @@ const FilterCell = ({ columnIndex, filter, Renderer }) => {
1647
1650
  };
1648
1651
 
1649
1652
  const NoMemoHeader = () => {
1650
- const { name, FiltersRenderer } = useResponsiveTableContext();
1653
+ const { name, FiltersRenderer, showFilters } = useResponsiveTableContext();
1651
1654
  const columns = useResponsiveTable(
1652
1655
  (global) => global.responsiveTableSlice[name]?.columns
1653
1656
  );
@@ -1704,8 +1707,7 @@ const NoMemoHeader = () => {
1704
1707
  [columns]
1705
1708
  );
1706
1709
  const [isFiltersRowVisible, setIsFiltersRowVisible] = React.useState(
1707
- /* (persistentStorage.showResponsiveTableFilters as boolean) ?? */
1708
- false
1710
+ showFilters ?? false
1709
1711
  );
1710
1712
  React.useEffect(() => {
1711
1713
  persistentStorage.showResponsiveTableFilters = isFiltersRowVisible;
@@ -2766,13 +2768,41 @@ function useIsMaximized(id) {
2766
2768
 
2767
2769
  const NoMemoPagination = ({
2768
2770
  listId: outerListId,
2771
+ onPageChange,
2769
2772
  ...props
2770
2773
  }) => {
2771
2774
  const listId = useResponsiveTableContext().name;
2772
2775
  const { isMaximized, toggleIsMaximized } = useIsMaximized(
2773
2776
  outerListId ?? listId
2774
2777
  );
2775
- return /* @__PURE__ */ jsx(Pagination$1, { ...{ ...props, isMaximized, onMaximize: toggleIsMaximized } });
2778
+ const numberCurrentPage = Number(props.currentPage);
2779
+ const [internCurrentPage, setCurrentPage] = useState(
2780
+ numberCurrentPage ?? 1
2781
+ );
2782
+ const [lastEmittedPage, setLastEmittedPage] = useState(
2783
+ numberCurrentPage ?? 1
2784
+ );
2785
+ const setCurrentAndDispatch = useCallback(
2786
+ (page) => {
2787
+ if (page !== lastEmittedPage) {
2788
+ setCurrentPage(page);
2789
+ onPageChange?.(page);
2790
+ setLastEmittedPage(page);
2791
+ }
2792
+ },
2793
+ [lastEmittedPage, onPageChange]
2794
+ );
2795
+ useEffect(() => {
2796
+ setCurrentPage(numberCurrentPage);
2797
+ }, [numberCurrentPage]);
2798
+ return /* @__PURE__ */ jsx(
2799
+ Pagination$1,
2800
+ {
2801
+ ...{ ...props, isMaximized, onMaximize: toggleIsMaximized },
2802
+ currentPage: internCurrentPage,
2803
+ onPageChange: setCurrentAndDispatch
2804
+ }
2805
+ );
2776
2806
  };
2777
2807
  const Pagination = React.memo(NoMemoPagination);
2778
2808