@underverse-ui/underverse 0.2.21 → 0.2.22

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.cts CHANGED
@@ -1411,6 +1411,8 @@ interface DataTableProps<T> {
1411
1411
  /** Hiển thị đường kẻ dọc ngăn cách giữa các cột */
1412
1412
  columnDividers?: boolean;
1413
1413
  className?: string;
1414
+ /** Key để lưu pageSize vào localStorage. Nếu không cung cấp, pageSize sẽ không được persist */
1415
+ storageKey?: string;
1414
1416
  labels?: {
1415
1417
  density?: string;
1416
1418
  columns?: string;
@@ -1424,7 +1426,7 @@ interface DataTableProps<T> {
1424
1426
  };
1425
1427
  }
1426
1428
  declare function DataTable<T extends Record<string, any>>({ columns, data, rowKey, loading, total, page, pageSize, pageSizeOptions, onQueryChange, caption, toolbar, enableColumnVisibilityToggle, enableDensityToggle, enableHeaderAlignToggle, striped, // Mặc định bật màu nền sẽn kẽ cho các dòng
1427
- columnDividers, className, labels, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
1429
+ columnDividers, className, storageKey, labels, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
1428
1430
 
1429
1431
  interface TableProps extends React__default.HTMLAttributes<HTMLTableElement> {
1430
1432
  containerClassName?: string;
package/dist/index.d.ts CHANGED
@@ -1411,6 +1411,8 @@ interface DataTableProps<T> {
1411
1411
  /** Hiển thị đường kẻ dọc ngăn cách giữa các cột */
1412
1412
  columnDividers?: boolean;
1413
1413
  className?: string;
1414
+ /** Key để lưu pageSize vào localStorage. Nếu không cung cấp, pageSize sẽ không được persist */
1415
+ storageKey?: string;
1414
1416
  labels?: {
1415
1417
  density?: string;
1416
1418
  columns?: string;
@@ -1424,7 +1426,7 @@ interface DataTableProps<T> {
1424
1426
  };
1425
1427
  }
1426
1428
  declare function DataTable<T extends Record<string, any>>({ columns, data, rowKey, loading, total, page, pageSize, pageSizeOptions, onQueryChange, caption, toolbar, enableColumnVisibilityToggle, enableDensityToggle, enableHeaderAlignToggle, striped, // Mặc định bật màu nền sẽn kẽ cho các dòng
1427
- columnDividers, className, labels, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
1429
+ columnDividers, className, storageKey, labels, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
1428
1430
 
1429
1431
  interface TableProps extends React__default.HTMLAttributes<HTMLTableElement> {
1430
1432
  containerClassName?: string;
package/dist/index.js CHANGED
@@ -9914,6 +9914,7 @@ function DataTable({
9914
9914
  // Mặc định bật màu nền sẽn kẽ cho các dòng
9915
9915
  columnDividers = false,
9916
9916
  className,
9917
+ storageKey,
9917
9918
  labels
9918
9919
  }) {
9919
9920
  const t = useTranslations7("Common");
@@ -9923,7 +9924,26 @@ function DataTable({
9923
9924
  const [sort, setSort] = React37.useState(null);
9924
9925
  const [density, setDensity] = React37.useState("normal");
9925
9926
  const [curPage, setCurPage] = React37.useState(page);
9926
- const [curPageSize, setCurPageSize] = React37.useState(pageSize);
9927
+ const getInitialPageSize = React37.useCallback(() => {
9928
+ if (typeof window === "undefined" || !storageKey) return pageSize;
9929
+ try {
9930
+ const saved = localStorage.getItem(`datatable_${storageKey}_pageSize`);
9931
+ if (saved) {
9932
+ const parsed = parseInt(saved, 10);
9933
+ if (!isNaN(parsed) && parsed > 0) return parsed;
9934
+ }
9935
+ } catch {
9936
+ }
9937
+ return pageSize;
9938
+ }, [storageKey, pageSize]);
9939
+ const [curPageSize, setCurPageSize] = React37.useState(getInitialPageSize);
9940
+ React37.useEffect(() => {
9941
+ if (typeof window === "undefined" || !storageKey) return;
9942
+ try {
9943
+ localStorage.setItem(`datatable_${storageKey}_pageSize`, String(curPageSize));
9944
+ } catch {
9945
+ }
9946
+ }, [curPageSize, storageKey]);
9927
9947
  React37.useEffect(() => {
9928
9948
  const newColKeys = columns.filter((c) => c.visible !== false).map((c) => c.key);
9929
9949
  setVisibleCols((prev) => {