@inertiajs/react 2.3.7 → 2.3.8

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.js CHANGED
@@ -1028,6 +1028,8 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
1028
1028
  const [loadingPrevious, setLoadingPrevious] = (0, import_react13.useState)(false);
1029
1029
  const [loadingNext, setLoadingNext] = (0, import_react13.useState)(false);
1030
1030
  const [requestCount, setRequestCount] = (0, import_react13.useState)(0);
1031
+ const [hasPreviousPage, setHasPreviousPage] = (0, import_react13.useState)(false);
1032
+ const [hasNextPage, setHasNextPage] = (0, import_react13.useState)(false);
1031
1033
  const [resolvedStartElement, setResolvedStartElement] = (0, import_react13.useState)(null);
1032
1034
  const [resolvedEndElement, setResolvedEndElement] = (0, import_react13.useState)(null);
1033
1035
  const [resolvedItemsElement, setResolvedItemsElement] = (0, import_react13.useState)(null);
@@ -1078,6 +1080,11 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
1078
1080
  if (!resolvedItemsElement) {
1079
1081
  return;
1080
1082
  }
1083
+ function syncStateFromDataManager() {
1084
+ setRequestCount(infiniteScrollInstance.dataManager.getRequestCount());
1085
+ setHasPreviousPage(infiniteScrollInstance.dataManager.hasPrevious());
1086
+ setHasNextPage(infiniteScrollInstance.dataManager.hasNext());
1087
+ }
1081
1088
  const infiniteScrollInstance = (0, import_core6.useInfiniteScroll)({
1082
1089
  // Data
1083
1090
  getPropName: () => data,
@@ -1096,16 +1103,17 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
1096
1103
  onBeforeNextRequest: () => setLoadingNext(true),
1097
1104
  onCompletePreviousRequest: () => {
1098
1105
  setLoadingPrevious(false);
1099
- setRequestCount(infiniteScrollInstance.dataManager.getRequestCount());
1106
+ syncStateFromDataManager();
1100
1107
  },
1101
1108
  onCompleteNextRequest: () => {
1102
1109
  setLoadingNext(false);
1103
- setRequestCount(infiniteScrollInstance.dataManager.getRequestCount());
1104
- }
1110
+ syncStateFromDataManager();
1111
+ },
1112
+ onDataReset: syncStateFromDataManager
1105
1113
  });
1106
1114
  setInfiniteScroll(infiniteScrollInstance);
1107
1115
  const { dataManager: dataManager2, elementManager: elementManager2 } = infiniteScrollInstance;
1108
- setRequestCount(dataManager2.getRequestCount());
1116
+ syncStateFromDataManager();
1109
1117
  elementManager2.setupObservers();
1110
1118
  elementManager2.processServerLoadedElements(dataManager2.getLastLoadedPage());
1111
1119
  if (autoLoad) {
@@ -1147,8 +1155,8 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
1147
1155
  const sharedExposed = {
1148
1156
  loadingPrevious,
1149
1157
  loadingNext,
1150
- hasPrevious: dataManager?.hasPrevious() ?? false,
1151
- hasNext: dataManager?.hasNext() ?? false
1158
+ hasPrevious: hasPreviousPage,
1159
+ hasNext: hasNextPage
1152
1160
  };
1153
1161
  const exposedPrevious = {
1154
1162
  loading: loadingPrevious,
@@ -1156,7 +1164,7 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
1156
1164
  }),
1157
1165
  autoMode: headerAutoMode,
1158
1166
  manualMode: !headerAutoMode,
1159
- hasMore: dataManager?.hasPrevious() ?? false,
1167
+ hasMore: hasPreviousPage,
1160
1168
  ...sharedExposed
1161
1169
  };
1162
1170
  const exposedNext = {
@@ -1165,7 +1173,7 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
1165
1173
  }),
1166
1174
  autoMode: footerAutoMode,
1167
1175
  manualMode: !footerAutoMode,
1168
- hasMore: dataManager?.hasNext() ?? false,
1176
+ hasMore: hasNextPage,
1169
1177
  ...sharedExposed
1170
1178
  };
1171
1179
  const exposedSlot = {
@@ -1514,6 +1522,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
1514
1522
  const fetching = (0, import_react17.useRef)(false);
1515
1523
  const ref = (0, import_react17.useRef)(null);
1516
1524
  const observer = (0, import_react17.useRef)(null);
1525
+ const getReloadParamsRef = (0, import_react17.useRef)(() => ({}));
1517
1526
  (0, import_react17.useEffect)(() => {
1518
1527
  if (keys.length > 0) {
1519
1528
  setLoaded(keys.every((key) => pageProps[key] !== void 0));
@@ -1526,6 +1535,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
1526
1535
  }
1527
1536
  return reloadParams;
1528
1537
  }, [params, data]);
1538
+ getReloadParamsRef.current = getReloadParams;
1529
1539
  const registerObserver = () => {
1530
1540
  observer.current?.disconnect();
1531
1541
  observer.current = new IntersectionObserver(
@@ -1541,7 +1551,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
1541
1551
  }
1542
1552
  fetching.current = true;
1543
1553
  setIsFetching(true);
1544
- const reloadParams = getReloadParams();
1554
+ const reloadParams = getReloadParamsRef.current();
1545
1555
  import_core10.router.reload({
1546
1556
  ...reloadParams,
1547
1557
  onStart: (e) => {
@@ -1577,7 +1587,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
1577
1587
  return () => {
1578
1588
  observer.current?.disconnect();
1579
1589
  };
1580
- }, [always, loaded, ref, getReloadParams, buffer]);
1590
+ }, [always, loaded, buffer]);
1581
1591
  const resolveChildren = () => typeof children === "function" ? children({ fetching: isFetching }) : children;
1582
1592
  const resolveFallback = () => typeof fallback === "function" ? fallback() : fallback;
1583
1593
  if (always || !loaded) {