@gobolt/genesis 0.4.18 → 0.4.20

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.cjs CHANGED
@@ -84583,17 +84583,26 @@ const InfiniteScrollTable = ({
84583
84583
  dataSentRef.current = true;
84584
84584
  }
84585
84585
  }, [dataSource, onDataChange]);
84586
+ const prevValuesRef = React.useRef(null);
84587
+ const onChangeRef = React.useRef(onChange);
84586
84588
  React.useEffect(() => {
84587
- if (onChange) {
84589
+ onChangeRef.current = onChange;
84590
+ }, [onChange]);
84591
+ React.useEffect(() => {
84592
+ if (onChangeRef.current && data && dataSource.length > 0) {
84588
84593
  const dataChangeEvent = {
84589
- totalPages: data?.pages?.length ?? 0,
84590
- currentPage: data?.pages?.[0]?.page ?? 0,
84594
+ totalPages: data.pages?.length ?? 0,
84595
+ currentPage: data.pages?.[0]?.page ?? 0,
84591
84596
  resultsShown: dataSource.length,
84592
84597
  totalResults: totalDocs
84593
84598
  };
84594
- onChange(dataChangeEvent);
84599
+ const prevValues = prevValuesRef.current;
84600
+ if (!prevValues || prevValues.resultsShown !== dataChangeEvent.resultsShown || prevValues.totalResults !== dataChangeEvent.totalResults) {
84601
+ prevValuesRef.current = dataChangeEvent;
84602
+ onChangeRef.current(dataChangeEvent);
84603
+ }
84595
84604
  }
84596
- }, [data]);
84605
+ }, [data?.pages?.length, dataSource.length, totalDocs]);
84597
84606
  if (status === "pending") {
84598
84607
  return /* @__PURE__ */ jsxRuntime.jsx(
84599
84608
  "div",
@@ -85365,7 +85374,7 @@ const SecondaryTableControlsRow = ({
85365
85374
  children: [
85366
85375
  /* @__PURE__ */ jsxRuntime.jsx(GroupsRow, { groups, onGroupItemClick }),
85367
85376
  (totalRecords ?? 0) > 0 && !infiniteScrollData ? /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", color: "#6C6C6C", children: `${totalRecords} results` }) : null,
85368
- infiniteScrollData ? /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", color: "#6C6C6C", children: `Loaded ${infiniteScrollData.resultsShown} of ${infiniteScrollData.totalResults} Results` }) : null
85377
+ infiniteScrollData ? /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", color: "#6C6C6C", children: `${infiniteScrollData.resultsShown} results` }) : null
85369
85378
  ]
85370
85379
  }
85371
85380
  );
@@ -85444,6 +85453,7 @@ const TableWithControls = ({
85444
85453
  });
85445
85454
  };
85446
85455
  const onInfiniteScrollTableChange = (event) => {
85456
+ setInfiniteScrollData(event);
85447
85457
  onChange({
85448
85458
  event: "infiniteScrollTableChange",
85449
85459
  payload: { value: "infiniteScrollTableChange", event }
@@ -85509,12 +85519,18 @@ const TableWithControls = ({
85509
85519
  }
85510
85520
  }
85511
85521
  };
85522
+ const mergedSecondaryTableRowData = {
85523
+ ...secondaryTableRowData,
85524
+ groups: secondaryTableRowData?.groups || null,
85525
+ totalRecords: secondaryTableRowData?.totalRecords || null,
85526
+ infiniteScrollData: infiniteScrollData.resultsShown > 0 ? infiniteScrollData : secondaryTableRowData?.infiniteScrollData || infiniteScrollData
85527
+ };
85512
85528
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
85513
85529
  /* @__PURE__ */ jsxRuntime.jsx(
85514
85530
  TableControls,
85515
85531
  {
85516
85532
  primaryTableRowData,
85517
- secondaryTableRowData,
85533
+ secondaryTableRowData: mergedSecondaryTableRowData,
85518
85534
  onChange: onTableControlsChange
85519
85535
  }
85520
85536
  ),
package/dist/index.js CHANGED
@@ -84565,17 +84565,26 @@ const InfiniteScrollTable = ({
84565
84565
  dataSentRef.current = true;
84566
84566
  }
84567
84567
  }, [dataSource, onDataChange]);
84568
+ const prevValuesRef = useRef(null);
84569
+ const onChangeRef = useRef(onChange);
84568
84570
  useEffect(() => {
84569
- if (onChange) {
84571
+ onChangeRef.current = onChange;
84572
+ }, [onChange]);
84573
+ useEffect(() => {
84574
+ if (onChangeRef.current && data && dataSource.length > 0) {
84570
84575
  const dataChangeEvent = {
84571
- totalPages: data?.pages?.length ?? 0,
84572
- currentPage: data?.pages?.[0]?.page ?? 0,
84576
+ totalPages: data.pages?.length ?? 0,
84577
+ currentPage: data.pages?.[0]?.page ?? 0,
84573
84578
  resultsShown: dataSource.length,
84574
84579
  totalResults: totalDocs
84575
84580
  };
84576
- onChange(dataChangeEvent);
84581
+ const prevValues = prevValuesRef.current;
84582
+ if (!prevValues || prevValues.resultsShown !== dataChangeEvent.resultsShown || prevValues.totalResults !== dataChangeEvent.totalResults) {
84583
+ prevValuesRef.current = dataChangeEvent;
84584
+ onChangeRef.current(dataChangeEvent);
84585
+ }
84577
84586
  }
84578
- }, [data]);
84587
+ }, [data?.pages?.length, dataSource.length, totalDocs]);
84579
84588
  if (status === "pending") {
84580
84589
  return /* @__PURE__ */ jsx(
84581
84590
  "div",
@@ -85347,7 +85356,7 @@ const SecondaryTableControlsRow = ({
85347
85356
  children: [
85348
85357
  /* @__PURE__ */ jsx(GroupsRow, { groups, onGroupItemClick }),
85349
85358
  (totalRecords ?? 0) > 0 && !infiniteScrollData ? /* @__PURE__ */ jsx(Typography, { variant: "body2", color: "#6C6C6C", children: `${totalRecords} results` }) : null,
85350
- infiniteScrollData ? /* @__PURE__ */ jsx(Typography, { variant: "body2", color: "#6C6C6C", children: `Loaded ${infiniteScrollData.resultsShown} of ${infiniteScrollData.totalResults} Results` }) : null
85359
+ infiniteScrollData ? /* @__PURE__ */ jsx(Typography, { variant: "body2", color: "#6C6C6C", children: `${infiniteScrollData.resultsShown} results` }) : null
85351
85360
  ]
85352
85361
  }
85353
85362
  );
@@ -85426,6 +85435,7 @@ const TableWithControls = ({
85426
85435
  });
85427
85436
  };
85428
85437
  const onInfiniteScrollTableChange = (event) => {
85438
+ setInfiniteScrollData(event);
85429
85439
  onChange({
85430
85440
  event: "infiniteScrollTableChange",
85431
85441
  payload: { value: "infiniteScrollTableChange", event }
@@ -85491,12 +85501,18 @@ const TableWithControls = ({
85491
85501
  }
85492
85502
  }
85493
85503
  };
85504
+ const mergedSecondaryTableRowData = {
85505
+ ...secondaryTableRowData,
85506
+ groups: secondaryTableRowData?.groups || null,
85507
+ totalRecords: secondaryTableRowData?.totalRecords || null,
85508
+ infiniteScrollData: infiniteScrollData.resultsShown > 0 ? infiniteScrollData : secondaryTableRowData?.infiniteScrollData || infiniteScrollData
85509
+ };
85494
85510
  return /* @__PURE__ */ jsxs(Fragment, { children: [
85495
85511
  /* @__PURE__ */ jsx(
85496
85512
  TableControls,
85497
85513
  {
85498
85514
  primaryTableRowData,
85499
- secondaryTableRowData,
85515
+ secondaryTableRowData: mergedSecondaryTableRowData,
85500
85516
  onChange: onTableControlsChange
85501
85517
  }
85502
85518
  ),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobolt/genesis",
3
- "version": "0.4.18",
3
+ "version": "0.4.20",
4
4
  "description": "genesis design system",
5
5
  "author": "gobolt",
6
6
  "license": "MIT",