@inertiajs/react 2.3.6 → 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 +36 -14
- package/dist/index.esm.js.map +2 -2
- package/dist/index.js +36 -14
- package/dist/index.js.map +2 -2
- package/package.json +2 -2
- package/types/useForm.d.ts +24 -19
- package/types/useRemember.d.ts +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -284,13 +284,20 @@ function useIsomorphicLayoutEffect(effect, deps) {
|
|
|
284
284
|
// src/useRemember.ts
|
|
285
285
|
import { router as router4 } from "@inertiajs/core";
|
|
286
286
|
import { useEffect as useEffect4, useState as useState3 } from "react";
|
|
287
|
-
function useRemember(initialState, key) {
|
|
287
|
+
function useRemember(initialState, key, excludeKeysRef) {
|
|
288
288
|
const [state, setState] = useState3(() => {
|
|
289
289
|
const restored = router4.restore(key);
|
|
290
290
|
return restored !== void 0 ? restored : initialState;
|
|
291
291
|
});
|
|
292
292
|
useEffect4(() => {
|
|
293
|
-
|
|
293
|
+
const keys = excludeKeysRef?.current;
|
|
294
|
+
if (keys && keys.length > 0 && typeof state === "object" && state !== null) {
|
|
295
|
+
const filtered = { ...state };
|
|
296
|
+
keys.forEach((k) => delete filtered[k]);
|
|
297
|
+
router4.remember(filtered, key);
|
|
298
|
+
} else {
|
|
299
|
+
router4.remember(state, key);
|
|
300
|
+
}
|
|
294
301
|
}, [state, key]);
|
|
295
302
|
return [state, setState];
|
|
296
303
|
}
|
|
@@ -306,7 +313,8 @@ function useForm(...args) {
|
|
|
306
313
|
);
|
|
307
314
|
const cancelToken = useRef(null);
|
|
308
315
|
const recentlySuccessfulTimeoutId = useRef(void 0);
|
|
309
|
-
const
|
|
316
|
+
const excludeKeysRef = useRef([]);
|
|
317
|
+
const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`, excludeKeysRef) : useState4(defaults);
|
|
310
318
|
const [errors, setErrors] = rememberKey ? useRemember({}, `${rememberKey}:errors`) : useState4({});
|
|
311
319
|
const [hasErrors, setHasErrors] = useState4(false);
|
|
312
320
|
const [processing, setProcessing] = useState4(false);
|
|
@@ -566,7 +574,11 @@ function useForm(...args) {
|
|
|
566
574
|
put,
|
|
567
575
|
patch,
|
|
568
576
|
delete: deleteMethod,
|
|
569
|
-
cancel
|
|
577
|
+
cancel,
|
|
578
|
+
dontRemember: (...keys) => {
|
|
579
|
+
excludeKeysRef.current = keys;
|
|
580
|
+
return form;
|
|
581
|
+
}
|
|
570
582
|
};
|
|
571
583
|
const tap = (value, callback) => {
|
|
572
584
|
callback(value);
|
|
@@ -1007,6 +1019,8 @@ var InfiniteScroll = forwardRef2(
|
|
|
1007
1019
|
const [loadingPrevious, setLoadingPrevious] = useState6(false);
|
|
1008
1020
|
const [loadingNext, setLoadingNext] = useState6(false);
|
|
1009
1021
|
const [requestCount, setRequestCount] = useState6(0);
|
|
1022
|
+
const [hasPreviousPage, setHasPreviousPage] = useState6(false);
|
|
1023
|
+
const [hasNextPage, setHasNextPage] = useState6(false);
|
|
1010
1024
|
const [resolvedStartElement, setResolvedStartElement] = useState6(null);
|
|
1011
1025
|
const [resolvedEndElement, setResolvedEndElement] = useState6(null);
|
|
1012
1026
|
const [resolvedItemsElement, setResolvedItemsElement] = useState6(null);
|
|
@@ -1057,6 +1071,11 @@ var InfiniteScroll = forwardRef2(
|
|
|
1057
1071
|
if (!resolvedItemsElement) {
|
|
1058
1072
|
return;
|
|
1059
1073
|
}
|
|
1074
|
+
function syncStateFromDataManager() {
|
|
1075
|
+
setRequestCount(infiniteScrollInstance.dataManager.getRequestCount());
|
|
1076
|
+
setHasPreviousPage(infiniteScrollInstance.dataManager.hasPrevious());
|
|
1077
|
+
setHasNextPage(infiniteScrollInstance.dataManager.hasNext());
|
|
1078
|
+
}
|
|
1060
1079
|
const infiniteScrollInstance = useInfiniteScroll({
|
|
1061
1080
|
// Data
|
|
1062
1081
|
getPropName: () => data,
|
|
@@ -1075,16 +1094,17 @@ var InfiniteScroll = forwardRef2(
|
|
|
1075
1094
|
onBeforeNextRequest: () => setLoadingNext(true),
|
|
1076
1095
|
onCompletePreviousRequest: () => {
|
|
1077
1096
|
setLoadingPrevious(false);
|
|
1078
|
-
|
|
1097
|
+
syncStateFromDataManager();
|
|
1079
1098
|
},
|
|
1080
1099
|
onCompleteNextRequest: () => {
|
|
1081
1100
|
setLoadingNext(false);
|
|
1082
|
-
|
|
1083
|
-
}
|
|
1101
|
+
syncStateFromDataManager();
|
|
1102
|
+
},
|
|
1103
|
+
onDataReset: syncStateFromDataManager
|
|
1084
1104
|
});
|
|
1085
1105
|
setInfiniteScroll(infiniteScrollInstance);
|
|
1086
1106
|
const { dataManager: dataManager2, elementManager: elementManager2 } = infiniteScrollInstance;
|
|
1087
|
-
|
|
1107
|
+
syncStateFromDataManager();
|
|
1088
1108
|
elementManager2.setupObservers();
|
|
1089
1109
|
elementManager2.processServerLoadedElements(dataManager2.getLastLoadedPage());
|
|
1090
1110
|
if (autoLoad) {
|
|
@@ -1126,8 +1146,8 @@ var InfiniteScroll = forwardRef2(
|
|
|
1126
1146
|
const sharedExposed = {
|
|
1127
1147
|
loadingPrevious,
|
|
1128
1148
|
loadingNext,
|
|
1129
|
-
hasPrevious:
|
|
1130
|
-
hasNext:
|
|
1149
|
+
hasPrevious: hasPreviousPage,
|
|
1150
|
+
hasNext: hasNextPage
|
|
1131
1151
|
};
|
|
1132
1152
|
const exposedPrevious = {
|
|
1133
1153
|
loading: loadingPrevious,
|
|
@@ -1135,7 +1155,7 @@ var InfiniteScroll = forwardRef2(
|
|
|
1135
1155
|
}),
|
|
1136
1156
|
autoMode: headerAutoMode,
|
|
1137
1157
|
manualMode: !headerAutoMode,
|
|
1138
|
-
hasMore:
|
|
1158
|
+
hasMore: hasPreviousPage,
|
|
1139
1159
|
...sharedExposed
|
|
1140
1160
|
};
|
|
1141
1161
|
const exposedNext = {
|
|
@@ -1144,7 +1164,7 @@ var InfiniteScroll = forwardRef2(
|
|
|
1144
1164
|
}),
|
|
1145
1165
|
autoMode: footerAutoMode,
|
|
1146
1166
|
manualMode: !footerAutoMode,
|
|
1147
|
-
hasMore:
|
|
1167
|
+
hasMore: hasNextPage,
|
|
1148
1168
|
...sharedExposed
|
|
1149
1169
|
};
|
|
1150
1170
|
const exposedSlot = {
|
|
@@ -1499,6 +1519,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
|
|
|
1499
1519
|
const fetching = useRef6(false);
|
|
1500
1520
|
const ref = useRef6(null);
|
|
1501
1521
|
const observer = useRef6(null);
|
|
1522
|
+
const getReloadParamsRef = useRef6(() => ({}));
|
|
1502
1523
|
useEffect12(() => {
|
|
1503
1524
|
if (keys.length > 0) {
|
|
1504
1525
|
setLoaded(keys.every((key) => pageProps[key] !== void 0));
|
|
@@ -1511,6 +1532,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
|
|
|
1511
1532
|
}
|
|
1512
1533
|
return reloadParams;
|
|
1513
1534
|
}, [params, data]);
|
|
1535
|
+
getReloadParamsRef.current = getReloadParams;
|
|
1514
1536
|
const registerObserver = () => {
|
|
1515
1537
|
observer.current?.disconnect();
|
|
1516
1538
|
observer.current = new IntersectionObserver(
|
|
@@ -1526,7 +1548,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
|
|
|
1526
1548
|
}
|
|
1527
1549
|
fetching.current = true;
|
|
1528
1550
|
setIsFetching(true);
|
|
1529
|
-
const reloadParams =
|
|
1551
|
+
const reloadParams = getReloadParamsRef.current();
|
|
1530
1552
|
router9.reload({
|
|
1531
1553
|
...reloadParams,
|
|
1532
1554
|
onStart: (e) => {
|
|
@@ -1562,7 +1584,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
|
|
|
1562
1584
|
return () => {
|
|
1563
1585
|
observer.current?.disconnect();
|
|
1564
1586
|
};
|
|
1565
|
-
}, [always, loaded,
|
|
1587
|
+
}, [always, loaded, buffer]);
|
|
1566
1588
|
const resolveChildren = () => typeof children === "function" ? children({ fetching: isFetching }) : children;
|
|
1567
1589
|
const resolveFallback = () => typeof fallback === "function" ? fallback() : fallback;
|
|
1568
1590
|
if (always || !loaded) {
|