@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.js
CHANGED
|
@@ -305,13 +305,20 @@ function useIsomorphicLayoutEffect(effect, deps) {
|
|
|
305
305
|
// src/useRemember.ts
|
|
306
306
|
var import_core3 = require("@inertiajs/core");
|
|
307
307
|
var import_react8 = require("react");
|
|
308
|
-
function useRemember(initialState, key) {
|
|
308
|
+
function useRemember(initialState, key, excludeKeysRef) {
|
|
309
309
|
const [state, setState] = (0, import_react8.useState)(() => {
|
|
310
310
|
const restored = import_core3.router.restore(key);
|
|
311
311
|
return restored !== void 0 ? restored : initialState;
|
|
312
312
|
});
|
|
313
313
|
(0, import_react8.useEffect)(() => {
|
|
314
|
-
|
|
314
|
+
const keys = excludeKeysRef?.current;
|
|
315
|
+
if (keys && keys.length > 0 && typeof state === "object" && state !== null) {
|
|
316
|
+
const filtered = { ...state };
|
|
317
|
+
keys.forEach((k) => delete filtered[k]);
|
|
318
|
+
import_core3.router.remember(filtered, key);
|
|
319
|
+
} else {
|
|
320
|
+
import_core3.router.remember(state, key);
|
|
321
|
+
}
|
|
315
322
|
}, [state, key]);
|
|
316
323
|
return [state, setState];
|
|
317
324
|
}
|
|
@@ -327,7 +334,8 @@ function useForm(...args) {
|
|
|
327
334
|
);
|
|
328
335
|
const cancelToken = (0, import_react9.useRef)(null);
|
|
329
336
|
const recentlySuccessfulTimeoutId = (0, import_react9.useRef)(void 0);
|
|
330
|
-
const
|
|
337
|
+
const excludeKeysRef = (0, import_react9.useRef)([]);
|
|
338
|
+
const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`, excludeKeysRef) : (0, import_react9.useState)(defaults);
|
|
331
339
|
const [errors, setErrors] = rememberKey ? useRemember({}, `${rememberKey}:errors`) : (0, import_react9.useState)({});
|
|
332
340
|
const [hasErrors, setHasErrors] = (0, import_react9.useState)(false);
|
|
333
341
|
const [processing, setProcessing] = (0, import_react9.useState)(false);
|
|
@@ -587,7 +595,11 @@ function useForm(...args) {
|
|
|
587
595
|
put,
|
|
588
596
|
patch,
|
|
589
597
|
delete: deleteMethod,
|
|
590
|
-
cancel
|
|
598
|
+
cancel,
|
|
599
|
+
dontRemember: (...keys) => {
|
|
600
|
+
excludeKeysRef.current = keys;
|
|
601
|
+
return form;
|
|
602
|
+
}
|
|
591
603
|
};
|
|
592
604
|
const tap = (value, callback) => {
|
|
593
605
|
callback(value);
|
|
@@ -1016,6 +1028,8 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1016
1028
|
const [loadingPrevious, setLoadingPrevious] = (0, import_react13.useState)(false);
|
|
1017
1029
|
const [loadingNext, setLoadingNext] = (0, import_react13.useState)(false);
|
|
1018
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);
|
|
1019
1033
|
const [resolvedStartElement, setResolvedStartElement] = (0, import_react13.useState)(null);
|
|
1020
1034
|
const [resolvedEndElement, setResolvedEndElement] = (0, import_react13.useState)(null);
|
|
1021
1035
|
const [resolvedItemsElement, setResolvedItemsElement] = (0, import_react13.useState)(null);
|
|
@@ -1066,6 +1080,11 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1066
1080
|
if (!resolvedItemsElement) {
|
|
1067
1081
|
return;
|
|
1068
1082
|
}
|
|
1083
|
+
function syncStateFromDataManager() {
|
|
1084
|
+
setRequestCount(infiniteScrollInstance.dataManager.getRequestCount());
|
|
1085
|
+
setHasPreviousPage(infiniteScrollInstance.dataManager.hasPrevious());
|
|
1086
|
+
setHasNextPage(infiniteScrollInstance.dataManager.hasNext());
|
|
1087
|
+
}
|
|
1069
1088
|
const infiniteScrollInstance = (0, import_core6.useInfiniteScroll)({
|
|
1070
1089
|
// Data
|
|
1071
1090
|
getPropName: () => data,
|
|
@@ -1084,16 +1103,17 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1084
1103
|
onBeforeNextRequest: () => setLoadingNext(true),
|
|
1085
1104
|
onCompletePreviousRequest: () => {
|
|
1086
1105
|
setLoadingPrevious(false);
|
|
1087
|
-
|
|
1106
|
+
syncStateFromDataManager();
|
|
1088
1107
|
},
|
|
1089
1108
|
onCompleteNextRequest: () => {
|
|
1090
1109
|
setLoadingNext(false);
|
|
1091
|
-
|
|
1092
|
-
}
|
|
1110
|
+
syncStateFromDataManager();
|
|
1111
|
+
},
|
|
1112
|
+
onDataReset: syncStateFromDataManager
|
|
1093
1113
|
});
|
|
1094
1114
|
setInfiniteScroll(infiniteScrollInstance);
|
|
1095
1115
|
const { dataManager: dataManager2, elementManager: elementManager2 } = infiniteScrollInstance;
|
|
1096
|
-
|
|
1116
|
+
syncStateFromDataManager();
|
|
1097
1117
|
elementManager2.setupObservers();
|
|
1098
1118
|
elementManager2.processServerLoadedElements(dataManager2.getLastLoadedPage());
|
|
1099
1119
|
if (autoLoad) {
|
|
@@ -1135,8 +1155,8 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1135
1155
|
const sharedExposed = {
|
|
1136
1156
|
loadingPrevious,
|
|
1137
1157
|
loadingNext,
|
|
1138
|
-
hasPrevious:
|
|
1139
|
-
hasNext:
|
|
1158
|
+
hasPrevious: hasPreviousPage,
|
|
1159
|
+
hasNext: hasNextPage
|
|
1140
1160
|
};
|
|
1141
1161
|
const exposedPrevious = {
|
|
1142
1162
|
loading: loadingPrevious,
|
|
@@ -1144,7 +1164,7 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1144
1164
|
}),
|
|
1145
1165
|
autoMode: headerAutoMode,
|
|
1146
1166
|
manualMode: !headerAutoMode,
|
|
1147
|
-
hasMore:
|
|
1167
|
+
hasMore: hasPreviousPage,
|
|
1148
1168
|
...sharedExposed
|
|
1149
1169
|
};
|
|
1150
1170
|
const exposedNext = {
|
|
@@ -1153,7 +1173,7 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1153
1173
|
}),
|
|
1154
1174
|
autoMode: footerAutoMode,
|
|
1155
1175
|
manualMode: !footerAutoMode,
|
|
1156
|
-
hasMore:
|
|
1176
|
+
hasMore: hasNextPage,
|
|
1157
1177
|
...sharedExposed
|
|
1158
1178
|
};
|
|
1159
1179
|
const exposedSlot = {
|
|
@@ -1502,6 +1522,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
|
|
|
1502
1522
|
const fetching = (0, import_react17.useRef)(false);
|
|
1503
1523
|
const ref = (0, import_react17.useRef)(null);
|
|
1504
1524
|
const observer = (0, import_react17.useRef)(null);
|
|
1525
|
+
const getReloadParamsRef = (0, import_react17.useRef)(() => ({}));
|
|
1505
1526
|
(0, import_react17.useEffect)(() => {
|
|
1506
1527
|
if (keys.length > 0) {
|
|
1507
1528
|
setLoaded(keys.every((key) => pageProps[key] !== void 0));
|
|
@@ -1514,6 +1535,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
|
|
|
1514
1535
|
}
|
|
1515
1536
|
return reloadParams;
|
|
1516
1537
|
}, [params, data]);
|
|
1538
|
+
getReloadParamsRef.current = getReloadParams;
|
|
1517
1539
|
const registerObserver = () => {
|
|
1518
1540
|
observer.current?.disconnect();
|
|
1519
1541
|
observer.current = new IntersectionObserver(
|
|
@@ -1529,7 +1551,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
|
|
|
1529
1551
|
}
|
|
1530
1552
|
fetching.current = true;
|
|
1531
1553
|
setIsFetching(true);
|
|
1532
|
-
const reloadParams =
|
|
1554
|
+
const reloadParams = getReloadParamsRef.current();
|
|
1533
1555
|
import_core10.router.reload({
|
|
1534
1556
|
...reloadParams,
|
|
1535
1557
|
onStart: (e) => {
|
|
@@ -1565,7 +1587,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
|
|
|
1565
1587
|
return () => {
|
|
1566
1588
|
observer.current?.disconnect();
|
|
1567
1589
|
};
|
|
1568
|
-
}, [always, loaded,
|
|
1590
|
+
}, [always, loaded, buffer]);
|
|
1569
1591
|
const resolveChildren = () => typeof children === "function" ? children({ fetching: isFetching }) : children;
|
|
1570
1592
|
const resolveFallback = () => typeof fallback === "function" ? fallback() : fallback;
|
|
1571
1593
|
if (always || !loaded) {
|