@stella-source/stellasource-dsl 0.2.0 → 0.2.1

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.
@@ -9,4 +9,5 @@ export interface PaginationProps {
9
9
  totalRows: number;
10
10
  onPageChange?: (page: number, pageSize: number) => void;
11
11
  startingPage?: number;
12
+ resetTrigger?: number;
12
13
  }
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { TableProps } from "./types";
3
- declare function Table<T>({ columns, data, isLoading, serverSide, onPageChange, onSortChange, onFilterChange, onRowSelect, rowStatuses, showSelection, showRowOptions, showPagination, variant, paginationDetails, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, }: TableProps<T>): React.JSX.Element;
3
+ declare function Table<T>({ columns, data, isLoading, serverSide, onPageChange, onSortChange, onFilterChange, onRowSelect, rowStatuses, showSelection, showRowOptions, showPagination, variant, paginationDetails, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, }: TableProps<T>): React.JSX.Element;
4
4
  export default Table;
@@ -37,6 +37,7 @@ export interface TableProps<T> {
37
37
  htmlProps?: HTMLAttributes<HTMLTableElement>;
38
38
  paginationDetails?: PaginationDetails;
39
39
  rowStatuses?: Record<number | string, RowStatus>;
40
+ resetTrigger?: number;
40
41
  }
41
42
  export interface CustomColumnMeta {
42
43
  headerAlign?: "left" | "right";
@@ -20679,14 +20679,19 @@ const PageTotals = styled.span `
20679
20679
 
20680
20680
  const Pagination = ({ isLoading, rowsPerPage = 100, totalRows, ariaLabel = "Pagination", onPageChange, startingPage = 1, id, className, htmlProps, }) => {
20681
20681
  const [pageNumber, setPageNumber] = a__default.useState(startingPage || 1);
20682
+ const [total, setTotal] = a__default.useState(totalRows || 5);
20682
20683
  const totalPages = useMemo$1(() => {
20683
- return Math.ceil(totalRows / rowsPerPage);
20684
- }, [rowsPerPage, totalRows]);
20684
+ return Math.ceil(total / rowsPerPage);
20685
+ }, [rowsPerPage, total]);
20685
20686
  const currentRows = useMemo$1(() => {
20686
20687
  const startRow = (pageNumber - 1) * rowsPerPage + 1;
20687
- const endRow = Math.min(startRow + rowsPerPage - 1, totalRows);
20688
+ const endRow = Math.min(startRow + rowsPerPage - 1, total);
20688
20689
  return { startRow, endRow };
20689
- }, [pageNumber, rowsPerPage, totalRows]);
20690
+ }, [pageNumber, rowsPerPage, total]);
20691
+ useEffect(() => {
20692
+ setPageNumber(startingPage);
20693
+ setTotal(totalRows);
20694
+ }, [totalRows, startingPage]);
20690
20695
  const handlePageChange = (newPage) => {
20691
20696
  if (newPage >= 1 && newPage <= totalPages) {
20692
20697
  setPageNumber(newPage);
@@ -21202,7 +21207,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
21202
21207
  startingPage: 1,
21203
21208
  rowsPerPage: 10,
21204
21209
  totalRows: data.length,
21205
- }, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, }) {
21210
+ }, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, }) {
21206
21211
  const [rowSelection, setRowSelection] = useState({});
21207
21212
  const [selectedRows] = useState({});
21208
21213
  const [pageIndex, setPageIndex] = useState(paginationDetails?.startingPage);
@@ -21210,6 +21215,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
21210
21215
  pageIndex: paginationDetails?.startingPage - 1,
21211
21216
  pageSize: paginationDetails?.rowsPerPage || 10,
21212
21217
  });
21218
+ const [totalData, setTotalData] = useState(paginationDetails?.totalRows);
21213
21219
  const [sorting, setSorting] = useState([]);
21214
21220
  const [filters, setFilters] = useState({});
21215
21221
  const [rowState, setRowState] = useState({});
@@ -21225,6 +21231,9 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
21225
21231
  useEffect(() => {
21226
21232
  setRowStatusesState(rowStatuses || {});
21227
21233
  }, [rowStatuses]);
21234
+ useEffect(() => {
21235
+ setTotalData(paginationDetails?.totalRows);
21236
+ }, [paginationDetails.totalRows, data]);
21228
21237
  useEffect(() => {
21229
21238
  const el = scrollRef?.current;
21230
21239
  if (!el)
@@ -21331,6 +21340,20 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
21331
21340
  onRowSelect?.(selectedData);
21332
21341
  }
21333
21342
  }, [onRowSelect, table, rowSelection]);
21343
+ useEffect(() => {
21344
+ resetTable();
21345
+ }, [resetTrigger]);
21346
+ const resetTable = () => {
21347
+ setColumnFilters([]);
21348
+ setFilters({});
21349
+ setScrollState({ atLeft: true, atRight: false });
21350
+ setSorting([]);
21351
+ setPageIndex(1);
21352
+ setPagination({
21353
+ pageIndex: paginationDetails?.startingPage - 1,
21354
+ pageSize: paginationDetails?.rowsPerPage || 10,
21355
+ });
21356
+ };
21334
21357
  return (a__default.createElement(TableWrapper, { className: className, id: id, "data-testid": dataTestId, "data-auto": dataAuto },
21335
21358
  a__default.createElement(TableWrapperScroll, { "$filterMenuOpen": Object.values(filterMenuOpen).some((value) => value), ref: scrollRef }, isLoading ? (a__default.createElement("div", null,
21336
21359
  a__default.createElement("div", { style: {
@@ -21399,16 +21422,14 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
21399
21422
  : "white",
21400
21423
  }, "$isPinnedLeft": cell.column.getIsPinned() === "left", "$isPinnedRight": cell.column.getIsPinned() === "right", "$columnInfo": cell.column, "$isLastRow": row.index === table.getRowModel().rows.length - 1 }, value));
21401
21424
  })))))))),
21402
- showPagination && paginationDetails?.totalRows && (a__default.createElement(CustomPagination, { totalRows: serverSide
21403
- ? paginationDetails?.totalRows
21404
- : table.getFilteredRowModel().rows.length, isLoading: isLoading, rowsPerPage: paginationDetails?.rowsPerPage, startingPage: pageIndex, onPageChange: (page, pageSize) => {
21425
+ showPagination && paginationDetails?.totalRows && (a__default.createElement(CustomPagination, { totalRows: serverSide ? totalData : table.getFilteredRowModel().rows.length, isLoading: isLoading, rowsPerPage: paginationDetails?.rowsPerPage, startingPage: pageIndex, onPageChange: (page, pageSize) => {
21405
21426
  setPageIndex(page);
21406
21427
  setPagination((prev) => ({
21407
21428
  ...prev,
21408
21429
  pageIndex: page - 1,
21409
21430
  }));
21410
21431
  onPageChange?.(page, pageSize);
21411
- } }))));
21432
+ }, resetTrigger: resetTrigger }))));
21412
21433
  }
21413
21434
 
21414
21435
  const SyncContainer = styled.div `