@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.esm.js CHANGED
@@ -1019,6 +1019,8 @@ var InfiniteScroll = forwardRef2(
1019
1019
  const [loadingPrevious, setLoadingPrevious] = useState6(false);
1020
1020
  const [loadingNext, setLoadingNext] = useState6(false);
1021
1021
  const [requestCount, setRequestCount] = useState6(0);
1022
+ const [hasPreviousPage, setHasPreviousPage] = useState6(false);
1023
+ const [hasNextPage, setHasNextPage] = useState6(false);
1022
1024
  const [resolvedStartElement, setResolvedStartElement] = useState6(null);
1023
1025
  const [resolvedEndElement, setResolvedEndElement] = useState6(null);
1024
1026
  const [resolvedItemsElement, setResolvedItemsElement] = useState6(null);
@@ -1069,6 +1071,11 @@ var InfiniteScroll = forwardRef2(
1069
1071
  if (!resolvedItemsElement) {
1070
1072
  return;
1071
1073
  }
1074
+ function syncStateFromDataManager() {
1075
+ setRequestCount(infiniteScrollInstance.dataManager.getRequestCount());
1076
+ setHasPreviousPage(infiniteScrollInstance.dataManager.hasPrevious());
1077
+ setHasNextPage(infiniteScrollInstance.dataManager.hasNext());
1078
+ }
1072
1079
  const infiniteScrollInstance = useInfiniteScroll({
1073
1080
  // Data
1074
1081
  getPropName: () => data,
@@ -1087,16 +1094,17 @@ var InfiniteScroll = forwardRef2(
1087
1094
  onBeforeNextRequest: () => setLoadingNext(true),
1088
1095
  onCompletePreviousRequest: () => {
1089
1096
  setLoadingPrevious(false);
1090
- setRequestCount(infiniteScrollInstance.dataManager.getRequestCount());
1097
+ syncStateFromDataManager();
1091
1098
  },
1092
1099
  onCompleteNextRequest: () => {
1093
1100
  setLoadingNext(false);
1094
- setRequestCount(infiniteScrollInstance.dataManager.getRequestCount());
1095
- }
1101
+ syncStateFromDataManager();
1102
+ },
1103
+ onDataReset: syncStateFromDataManager
1096
1104
  });
1097
1105
  setInfiniteScroll(infiniteScrollInstance);
1098
1106
  const { dataManager: dataManager2, elementManager: elementManager2 } = infiniteScrollInstance;
1099
- setRequestCount(dataManager2.getRequestCount());
1107
+ syncStateFromDataManager();
1100
1108
  elementManager2.setupObservers();
1101
1109
  elementManager2.processServerLoadedElements(dataManager2.getLastLoadedPage());
1102
1110
  if (autoLoad) {
@@ -1138,8 +1146,8 @@ var InfiniteScroll = forwardRef2(
1138
1146
  const sharedExposed = {
1139
1147
  loadingPrevious,
1140
1148
  loadingNext,
1141
- hasPrevious: dataManager?.hasPrevious() ?? false,
1142
- hasNext: dataManager?.hasNext() ?? false
1149
+ hasPrevious: hasPreviousPage,
1150
+ hasNext: hasNextPage
1143
1151
  };
1144
1152
  const exposedPrevious = {
1145
1153
  loading: loadingPrevious,
@@ -1147,7 +1155,7 @@ var InfiniteScroll = forwardRef2(
1147
1155
  }),
1148
1156
  autoMode: headerAutoMode,
1149
1157
  manualMode: !headerAutoMode,
1150
- hasMore: dataManager?.hasPrevious() ?? false,
1158
+ hasMore: hasPreviousPage,
1151
1159
  ...sharedExposed
1152
1160
  };
1153
1161
  const exposedNext = {
@@ -1156,7 +1164,7 @@ var InfiniteScroll = forwardRef2(
1156
1164
  }),
1157
1165
  autoMode: footerAutoMode,
1158
1166
  manualMode: !footerAutoMode,
1159
- hasMore: dataManager?.hasNext() ?? false,
1167
+ hasMore: hasNextPage,
1160
1168
  ...sharedExposed
1161
1169
  };
1162
1170
  const exposedSlot = {
@@ -1511,6 +1519,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
1511
1519
  const fetching = useRef6(false);
1512
1520
  const ref = useRef6(null);
1513
1521
  const observer = useRef6(null);
1522
+ const getReloadParamsRef = useRef6(() => ({}));
1514
1523
  useEffect12(() => {
1515
1524
  if (keys.length > 0) {
1516
1525
  setLoaded(keys.every((key) => pageProps[key] !== void 0));
@@ -1523,6 +1532,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
1523
1532
  }
1524
1533
  return reloadParams;
1525
1534
  }, [params, data]);
1535
+ getReloadParamsRef.current = getReloadParams;
1526
1536
  const registerObserver = () => {
1527
1537
  observer.current?.disconnect();
1528
1538
  observer.current = new IntersectionObserver(
@@ -1538,7 +1548,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
1538
1548
  }
1539
1549
  fetching.current = true;
1540
1550
  setIsFetching(true);
1541
- const reloadParams = getReloadParams();
1551
+ const reloadParams = getReloadParamsRef.current();
1542
1552
  router9.reload({
1543
1553
  ...reloadParams,
1544
1554
  onStart: (e) => {
@@ -1574,7 +1584,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
1574
1584
  return () => {
1575
1585
  observer.current?.disconnect();
1576
1586
  };
1577
- }, [always, loaded, ref, getReloadParams, buffer]);
1587
+ }, [always, loaded, buffer]);
1578
1588
  const resolveChildren = () => typeof children === "function" ? children({ fetching: isFetching }) : children;
1579
1589
  const resolveFallback = () => typeof fallback === "function" ? fallback() : fallback;
1580
1590
  if (always || !loaded) {