@inertiajs/react 2.3.10 → 2.3.11
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 +24 -22
- package/dist/index.esm.js.map +4 -4
- package/dist/index.js +158 -156
- package/dist/index.js.map +4 -4
- package/package.json +8 -8
- package/types/react.d.ts +1 -0
- package/types/useForm.d.ts +1 -0
package/dist/index.js
CHANGED
|
@@ -235,12 +235,21 @@ async function createInertiaApp({
|
|
|
235
235
|
}
|
|
236
236
|
|
|
237
237
|
// src/Deferred.ts
|
|
238
|
-
var
|
|
238
|
+
var import_react8 = require("react");
|
|
239
239
|
|
|
240
240
|
// src/usePage.ts
|
|
241
|
+
var import_react6 = __toESM(require("react"), 1);
|
|
242
|
+
|
|
243
|
+
// src/react.ts
|
|
241
244
|
var import_react5 = __toESM(require("react"), 1);
|
|
245
|
+
function useIsomorphicLayoutEffect(effect, deps) {
|
|
246
|
+
typeof window === "undefined" ? (0, import_react5.useEffect)(effect, deps) : (0, import_react5.useLayoutEffect)(effect, deps);
|
|
247
|
+
}
|
|
248
|
+
var isReact19 = typeof import_react5.default.use === "function";
|
|
249
|
+
|
|
250
|
+
// src/usePage.ts
|
|
242
251
|
function usePage() {
|
|
243
|
-
const page =
|
|
252
|
+
const page = isReact19 ? import_react6.default.use(PageContext_default) : import_react6.default.useContext(PageContext_default);
|
|
244
253
|
if (!page) {
|
|
245
254
|
throw new Error("usePage must be used within the Inertia component");
|
|
246
255
|
}
|
|
@@ -260,10 +269,10 @@ var Deferred = ({ children, data, fallback }) => {
|
|
|
260
269
|
if (!data) {
|
|
261
270
|
throw new Error("`<Deferred>` requires a `data` prop to be a string or array of strings");
|
|
262
271
|
}
|
|
263
|
-
const [loaded, setLoaded] = (0,
|
|
272
|
+
const [loaded, setLoaded] = (0, import_react8.useState)(false);
|
|
264
273
|
const pageProps = usePage().props;
|
|
265
|
-
const keys = (0,
|
|
266
|
-
(0,
|
|
274
|
+
const keys = (0, import_react8.useMemo)(() => Array.isArray(data) ? data : [data], [data]);
|
|
275
|
+
(0, import_react8.useEffect)(() => {
|
|
267
276
|
const removeListener = router3.on("start", (e) => {
|
|
268
277
|
const isPartialVisit = e.detail.visit.only.length > 0 || e.detail.visit.except.length > 0;
|
|
269
278
|
const isReloadingKey = e.detail.visit.only.find((key) => keys.includes(key));
|
|
@@ -275,7 +284,7 @@ var Deferred = ({ children, data, fallback }) => {
|
|
|
275
284
|
removeListener();
|
|
276
285
|
};
|
|
277
286
|
}, []);
|
|
278
|
-
(0,
|
|
287
|
+
(0, import_react8.useEffect)(() => {
|
|
279
288
|
setLoaded(keys.every((key) => pageProps[key] !== void 0));
|
|
280
289
|
}, [pageProps, keys]);
|
|
281
290
|
if (loaded) {
|
|
@@ -289,29 +298,23 @@ var Deferred_default = Deferred;
|
|
|
289
298
|
// src/Form.ts
|
|
290
299
|
var import_core5 = require("@inertiajs/core");
|
|
291
300
|
var import_lodash_es2 = require("lodash-es");
|
|
292
|
-
var
|
|
301
|
+
var import_react12 = __toESM(require("react"), 1);
|
|
293
302
|
|
|
294
303
|
// src/useForm.ts
|
|
295
304
|
var import_core4 = require("@inertiajs/core");
|
|
296
305
|
var import_laravel_precognition = require("laravel-precognition");
|
|
297
306
|
var import_lodash_es = require("lodash-es");
|
|
298
|
-
var
|
|
299
|
-
|
|
300
|
-
// src/react.ts
|
|
301
|
-
var import_react7 = require("react");
|
|
302
|
-
function useIsomorphicLayoutEffect(effect, deps) {
|
|
303
|
-
typeof window === "undefined" ? (0, import_react7.useEffect)(effect, deps) : (0, import_react7.useLayoutEffect)(effect, deps);
|
|
304
|
-
}
|
|
307
|
+
var import_react10 = require("react");
|
|
305
308
|
|
|
306
309
|
// src/useRemember.ts
|
|
307
310
|
var import_core3 = require("@inertiajs/core");
|
|
308
|
-
var
|
|
311
|
+
var import_react9 = require("react");
|
|
309
312
|
function useRemember(initialState, key, excludeKeysRef) {
|
|
310
|
-
const [state, setState] = (0,
|
|
313
|
+
const [state, setState] = (0, import_react9.useState)(() => {
|
|
311
314
|
const restored = import_core3.router.restore(key);
|
|
312
315
|
return restored !== void 0 ? restored : initialState;
|
|
313
316
|
});
|
|
314
|
-
(0,
|
|
317
|
+
(0, import_react9.useEffect)(() => {
|
|
315
318
|
const keys = excludeKeysRef?.current;
|
|
316
319
|
if (keys && keys.length > 0 && typeof state === "object" && state !== null) {
|
|
317
320
|
const filtered = { ...state };
|
|
@@ -326,38 +329,38 @@ function useRemember(initialState, key, excludeKeysRef) {
|
|
|
326
329
|
|
|
327
330
|
// src/useForm.ts
|
|
328
331
|
function useForm(...args) {
|
|
329
|
-
const isMounted = (0,
|
|
332
|
+
const isMounted = (0, import_react10.useRef)(false);
|
|
330
333
|
const parsedArgs = import_core4.UseFormUtils.parseUseFormArguments(...args);
|
|
331
334
|
const { rememberKey, data: initialData } = parsedArgs;
|
|
332
|
-
const precognitionEndpoint = (0,
|
|
333
|
-
const [defaults, setDefaults] = (0,
|
|
335
|
+
const precognitionEndpoint = (0, import_react10.useRef)(parsedArgs.precognitionEndpoint);
|
|
336
|
+
const [defaults, setDefaults] = (0, import_react10.useState)(
|
|
334
337
|
typeof initialData === "function" ? (0, import_lodash_es.cloneDeep)(initialData()) : (0, import_lodash_es.cloneDeep)(initialData)
|
|
335
338
|
);
|
|
336
|
-
const cancelToken = (0,
|
|
337
|
-
const recentlySuccessfulTimeoutId = (0,
|
|
338
|
-
const excludeKeysRef = (0,
|
|
339
|
-
const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`, excludeKeysRef) : (0,
|
|
340
|
-
const [errors, setErrors] = rememberKey ? useRemember({}, `${rememberKey}:errors`) : (0,
|
|
341
|
-
const [hasErrors, setHasErrors] = (0,
|
|
342
|
-
const [processing, setProcessing] = (0,
|
|
343
|
-
const [progress2, setProgress] = (0,
|
|
344
|
-
const [wasSuccessful, setWasSuccessful] = (0,
|
|
345
|
-
const [recentlySuccessful, setRecentlySuccessful] = (0,
|
|
346
|
-
const transform = (0,
|
|
347
|
-
const isDirty = (0,
|
|
348
|
-
const validatorRef = (0,
|
|
349
|
-
const [validating, setValidating] = (0,
|
|
350
|
-
const [touchedFields, setTouchedFields] = (0,
|
|
351
|
-
const [validFields, setValidFields] = (0,
|
|
352
|
-
const withAllErrors = (0,
|
|
353
|
-
(0,
|
|
339
|
+
const cancelToken = (0, import_react10.useRef)(null);
|
|
340
|
+
const recentlySuccessfulTimeoutId = (0, import_react10.useRef)(void 0);
|
|
341
|
+
const excludeKeysRef = (0, import_react10.useRef)([]);
|
|
342
|
+
const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`, excludeKeysRef) : (0, import_react10.useState)(defaults);
|
|
343
|
+
const [errors, setErrors] = rememberKey ? useRemember({}, `${rememberKey}:errors`) : (0, import_react10.useState)({});
|
|
344
|
+
const [hasErrors, setHasErrors] = (0, import_react10.useState)(false);
|
|
345
|
+
const [processing, setProcessing] = (0, import_react10.useState)(false);
|
|
346
|
+
const [progress2, setProgress] = (0, import_react10.useState)(null);
|
|
347
|
+
const [wasSuccessful, setWasSuccessful] = (0, import_react10.useState)(false);
|
|
348
|
+
const [recentlySuccessful, setRecentlySuccessful] = (0, import_react10.useState)(false);
|
|
349
|
+
const transform = (0, import_react10.useRef)((data2) => data2);
|
|
350
|
+
const isDirty = (0, import_react10.useMemo)(() => !(0, import_lodash_es.isEqual)(data, defaults), [data, defaults]);
|
|
351
|
+
const validatorRef = (0, import_react10.useRef)(null);
|
|
352
|
+
const [validating, setValidating] = (0, import_react10.useState)(false);
|
|
353
|
+
const [touchedFields, setTouchedFields] = (0, import_react10.useState)([]);
|
|
354
|
+
const [validFields, setValidFields] = (0, import_react10.useState)([]);
|
|
355
|
+
const withAllErrors = (0, import_react10.useRef)(false);
|
|
356
|
+
(0, import_react10.useEffect)(() => {
|
|
354
357
|
isMounted.current = true;
|
|
355
358
|
return () => {
|
|
356
359
|
isMounted.current = false;
|
|
357
360
|
};
|
|
358
361
|
}, []);
|
|
359
|
-
const setDefaultsCalledInOnSuccess = (0,
|
|
360
|
-
const submit = (0,
|
|
362
|
+
const setDefaultsCalledInOnSuccess = (0, import_react10.useRef)(false);
|
|
363
|
+
const submit = (0, import_react10.useCallback)(
|
|
361
364
|
(...args2) => {
|
|
362
365
|
const { method, url, options } = import_core4.UseFormUtils.parseSubmitArguments(args2, precognitionEndpoint.current);
|
|
363
366
|
setDefaultsCalledInOnSuccess.current = false;
|
|
@@ -451,7 +454,7 @@ function useForm(...args) {
|
|
|
451
454
|
},
|
|
452
455
|
[data, setErrors, transform]
|
|
453
456
|
);
|
|
454
|
-
const setDataFunction = (0,
|
|
457
|
+
const setDataFunction = (0, import_react10.useCallback)(
|
|
455
458
|
(keyOrData, maybeValue) => {
|
|
456
459
|
if (typeof keyOrData === "string") {
|
|
457
460
|
setData((data2) => (0, import_lodash_es.set)((0, import_lodash_es.cloneDeep)(data2), keyOrData, maybeValue));
|
|
@@ -463,12 +466,12 @@ function useForm(...args) {
|
|
|
463
466
|
},
|
|
464
467
|
[setData]
|
|
465
468
|
);
|
|
466
|
-
const [dataAsDefaults, setDataAsDefaults] = (0,
|
|
467
|
-
const dataRef = (0,
|
|
468
|
-
(0,
|
|
469
|
+
const [dataAsDefaults, setDataAsDefaults] = (0, import_react10.useState)(false);
|
|
470
|
+
const dataRef = (0, import_react10.useRef)(data);
|
|
471
|
+
(0, import_react10.useEffect)(() => {
|
|
469
472
|
dataRef.current = data;
|
|
470
473
|
});
|
|
471
|
-
const setDefaultsFunction = (0,
|
|
474
|
+
const setDefaultsFunction = (0, import_react10.useCallback)(
|
|
472
475
|
(fieldOrFields, maybeValue) => {
|
|
473
476
|
setDefaultsCalledInOnSuccess.current = true;
|
|
474
477
|
let newDefaults = {};
|
|
@@ -495,7 +498,7 @@ function useForm(...args) {
|
|
|
495
498
|
}
|
|
496
499
|
setDataAsDefaults(false);
|
|
497
500
|
}, [dataAsDefaults]);
|
|
498
|
-
const reset = (0,
|
|
501
|
+
const reset = (0, import_react10.useCallback)(
|
|
499
502
|
(...fields) => {
|
|
500
503
|
if (fields.length === 0) {
|
|
501
504
|
setData(defaults);
|
|
@@ -513,7 +516,7 @@ function useForm(...args) {
|
|
|
513
516
|
},
|
|
514
517
|
[setData, defaults]
|
|
515
518
|
);
|
|
516
|
-
const setError = (0,
|
|
519
|
+
const setError = (0, import_react10.useCallback)(
|
|
517
520
|
(fieldOrFields, maybeValue) => {
|
|
518
521
|
setErrors((errors2) => {
|
|
519
522
|
const newErrors = {
|
|
@@ -527,7 +530,7 @@ function useForm(...args) {
|
|
|
527
530
|
},
|
|
528
531
|
[setErrors, setHasErrors]
|
|
529
532
|
);
|
|
530
|
-
const clearErrors = (0,
|
|
533
|
+
const clearErrors = (0, import_react10.useCallback)(
|
|
531
534
|
(...fields) => {
|
|
532
535
|
setErrors((errors2) => {
|
|
533
536
|
const newErrors = Object.keys(errors2).reduce(
|
|
@@ -550,7 +553,7 @@ function useForm(...args) {
|
|
|
550
553
|
},
|
|
551
554
|
[setErrors, setHasErrors]
|
|
552
555
|
);
|
|
553
|
-
const resetAndClearErrors = (0,
|
|
556
|
+
const resetAndClearErrors = (0, import_react10.useCallback)(
|
|
554
557
|
(...fields) => {
|
|
555
558
|
reset(...fields);
|
|
556
559
|
clearErrors(...fields);
|
|
@@ -560,17 +563,17 @@ function useForm(...args) {
|
|
|
560
563
|
const createSubmitMethod = (method) => (url, options = {}) => {
|
|
561
564
|
submit(method, url, options);
|
|
562
565
|
};
|
|
563
|
-
const getMethod = (0,
|
|
564
|
-
const post = (0,
|
|
565
|
-
const put = (0,
|
|
566
|
-
const patch = (0,
|
|
567
|
-
const deleteMethod = (0,
|
|
568
|
-
const cancel = (0,
|
|
566
|
+
const getMethod = (0, import_react10.useCallback)(createSubmitMethod("get"), [submit]);
|
|
567
|
+
const post = (0, import_react10.useCallback)(createSubmitMethod("post"), [submit]);
|
|
568
|
+
const put = (0, import_react10.useCallback)(createSubmitMethod("put"), [submit]);
|
|
569
|
+
const patch = (0, import_react10.useCallback)(createSubmitMethod("patch"), [submit]);
|
|
570
|
+
const deleteMethod = (0, import_react10.useCallback)(createSubmitMethod("delete"), [submit]);
|
|
571
|
+
const cancel = (0, import_react10.useCallback)(() => {
|
|
569
572
|
if (cancelToken.current) {
|
|
570
573
|
cancelToken.current.cancel();
|
|
571
574
|
}
|
|
572
575
|
}, []);
|
|
573
|
-
const transformFunction = (0,
|
|
576
|
+
const transformFunction = (0, import_react10.useCallback)((callback) => {
|
|
574
577
|
transform.current = callback;
|
|
575
578
|
}, []);
|
|
576
579
|
const form = {
|
|
@@ -605,12 +608,12 @@ function useForm(...args) {
|
|
|
605
608
|
callback(value);
|
|
606
609
|
return value;
|
|
607
610
|
};
|
|
608
|
-
const valid = (0,
|
|
611
|
+
const valid = (0, import_react10.useCallback)(
|
|
609
612
|
(field) => validFields.includes(field),
|
|
610
613
|
[validFields]
|
|
611
614
|
);
|
|
612
|
-
const invalid = (0,
|
|
613
|
-
const touched = (0,
|
|
615
|
+
const invalid = (0, import_react10.useCallback)((field) => field in errors, [errors]);
|
|
616
|
+
const touched = (0, import_react10.useCallback)(
|
|
614
617
|
(field) => typeof field === "string" ? touchedFields.includes(field) : touchedFields.length > 0,
|
|
615
618
|
[touchedFields]
|
|
616
619
|
);
|
|
@@ -687,11 +690,11 @@ function useForm(...args) {
|
|
|
687
690
|
|
|
688
691
|
// src/Form.ts
|
|
689
692
|
var deferStateUpdate = (callback) => {
|
|
690
|
-
typeof
|
|
693
|
+
typeof import_react12.default.startTransition === "function" ? import_react12.default.startTransition(callback) : setTimeout(callback, 0);
|
|
691
694
|
};
|
|
692
695
|
var noop = () => void 0;
|
|
693
|
-
var FormContext = (0,
|
|
694
|
-
var Form = (0,
|
|
696
|
+
var FormContext = (0, import_react12.createContext)(void 0);
|
|
697
|
+
var Form = (0, import_react12.forwardRef)(
|
|
695
698
|
({
|
|
696
699
|
action = "",
|
|
697
700
|
method = "get",
|
|
@@ -736,12 +739,12 @@ var Form = (0, import_react11.forwardRef)(
|
|
|
736
739
|
form.withAllErrors();
|
|
737
740
|
}
|
|
738
741
|
form.transform(getTransformedData);
|
|
739
|
-
const formElement = (0,
|
|
740
|
-
const resolvedMethod = (0,
|
|
742
|
+
const formElement = (0, import_react12.useRef)(void 0);
|
|
743
|
+
const resolvedMethod = (0, import_react12.useMemo)(() => {
|
|
741
744
|
return (0, import_core5.isUrlMethodPair)(action) ? action.method : method.toLowerCase();
|
|
742
745
|
}, [action, method]);
|
|
743
|
-
const [isDirty, setIsDirty] = (0,
|
|
744
|
-
const defaultData = (0,
|
|
746
|
+
const [isDirty, setIsDirty] = (0, import_react12.useState)(false);
|
|
747
|
+
const defaultData = (0, import_react12.useRef)(new FormData());
|
|
745
748
|
const getFormData = (submitter) => new FormData(formElement.current, submitter);
|
|
746
749
|
const getData = (submitter) => (0, import_core5.formDataToObject)(getFormData(submitter));
|
|
747
750
|
const getUrlAndData = (submitter) => {
|
|
@@ -764,7 +767,7 @@ var Form = (0, import_react11.forwardRef)(
|
|
|
764
767
|
form.clearErrors(...names);
|
|
765
768
|
return form;
|
|
766
769
|
};
|
|
767
|
-
(0,
|
|
770
|
+
(0, import_react12.useEffect)(() => {
|
|
768
771
|
defaultData.current = getFormData();
|
|
769
772
|
form.setDefaults(getData());
|
|
770
773
|
const formEvents = ["input", "change", "reset"];
|
|
@@ -773,10 +776,10 @@ var Form = (0, import_react11.forwardRef)(
|
|
|
773
776
|
formEvents.forEach((e) => formElement.current?.removeEventListener(e, updateDirtyState));
|
|
774
777
|
};
|
|
775
778
|
}, []);
|
|
776
|
-
(0,
|
|
779
|
+
(0, import_react12.useEffect)(() => {
|
|
777
780
|
form.setValidationTimeout(validationTimeout);
|
|
778
781
|
}, [validationTimeout]);
|
|
779
|
-
(0,
|
|
782
|
+
(0, import_react12.useEffect)(() => {
|
|
780
783
|
if (validateFiles) {
|
|
781
784
|
form.validateFiles();
|
|
782
785
|
} else {
|
|
@@ -867,8 +870,8 @@ var Form = (0, import_react11.forwardRef)(
|
|
|
867
870
|
touch: form.touch,
|
|
868
871
|
touched: form.touched
|
|
869
872
|
};
|
|
870
|
-
(0,
|
|
871
|
-
const formNode = (0,
|
|
873
|
+
(0, import_react12.useImperativeHandle)(ref, () => exposed, [form, isDirty, submit]);
|
|
874
|
+
const formNode = (0, import_react12.createElement)(
|
|
872
875
|
"form",
|
|
873
876
|
{
|
|
874
877
|
...props,
|
|
@@ -879,31 +882,30 @@ var Form = (0, import_react11.forwardRef)(
|
|
|
879
882
|
event.preventDefault();
|
|
880
883
|
submit(event.nativeEvent.submitter);
|
|
881
884
|
},
|
|
882
|
-
//
|
|
883
|
-
//
|
|
884
|
-
// Unfortunately, React 19 treats an empty string as `false`.
|
|
885
|
+
// React 19 supports passing a boolean to the `inert` attribute, but shows
|
|
886
|
+
// a warning when receiving a string. Earlier versions require the string 'true'.
|
|
885
887
|
// See: https://github.com/inertiajs/inertia/pull/2536
|
|
886
|
-
inert: disableWhileProcessing && form.processing && "true"
|
|
888
|
+
inert: disableWhileProcessing && form.processing && (isReact19 ? true : "true")
|
|
887
889
|
},
|
|
888
890
|
typeof children === "function" ? children(exposed) : children
|
|
889
891
|
);
|
|
890
|
-
return (0,
|
|
892
|
+
return (0, import_react12.createElement)(FormContext.Provider, { value: exposed }, formNode);
|
|
891
893
|
}
|
|
892
894
|
);
|
|
893
895
|
Form.displayName = "InertiaForm";
|
|
894
896
|
function useFormContext() {
|
|
895
|
-
return (0,
|
|
897
|
+
return (0, import_react12.useContext)(FormContext);
|
|
896
898
|
}
|
|
897
899
|
var Form_default = Form;
|
|
898
900
|
|
|
899
901
|
// src/Head.ts
|
|
900
902
|
var import_lodash_es3 = require("lodash-es");
|
|
901
|
-
var
|
|
903
|
+
var import_react14 = __toESM(require("react"), 1);
|
|
902
904
|
var Head = function({ children, title }) {
|
|
903
|
-
const headManager = (0,
|
|
904
|
-
const provider = (0,
|
|
905
|
+
const headManager = (0, import_react14.useContext)(HeadContext_default);
|
|
906
|
+
const provider = (0, import_react14.useMemo)(() => headManager.createProvider(), [headManager]);
|
|
905
907
|
const isServer = typeof window === "undefined";
|
|
906
|
-
(0,
|
|
908
|
+
(0, import_react14.useEffect)(() => {
|
|
907
909
|
provider.reconnect();
|
|
908
910
|
provider.update(renderNodes(children));
|
|
909
911
|
return () => {
|
|
@@ -966,7 +968,7 @@ var Head = function({ children, title }) {
|
|
|
966
968
|
return html;
|
|
967
969
|
}
|
|
968
970
|
function ensureNodeHasInertiaProp(node) {
|
|
969
|
-
return
|
|
971
|
+
return import_react14.default.cloneElement(node, {
|
|
970
972
|
[provider.preferredAttribute()]: node.props["head-key"] !== void 0 ? node.props["head-key"] : ""
|
|
971
973
|
});
|
|
972
974
|
}
|
|
@@ -974,7 +976,7 @@ var Head = function({ children, title }) {
|
|
|
974
976
|
return renderTag(ensureNodeHasInertiaProp(node));
|
|
975
977
|
}
|
|
976
978
|
function renderNodes(nodes) {
|
|
977
|
-
const elements =
|
|
979
|
+
const elements = import_react14.default.Children.toArray(nodes).filter((node) => node).map((node) => renderNode(node));
|
|
978
980
|
if (title && !elements.find((tag) => tag.startsWith("<title"))) {
|
|
979
981
|
elements.push(`<title ${provider.preferredAttribute()}>${title}</title>`);
|
|
980
982
|
}
|
|
@@ -989,7 +991,7 @@ var Head_default = Head;
|
|
|
989
991
|
|
|
990
992
|
// src/InfiniteScroll.ts
|
|
991
993
|
var import_core6 = require("@inertiajs/core");
|
|
992
|
-
var
|
|
994
|
+
var import_react15 = __toESM(require("react"), 1);
|
|
993
995
|
var resolveHTMLElement = (value, fallback) => {
|
|
994
996
|
if (!value) {
|
|
995
997
|
return fallback;
|
|
@@ -1008,7 +1010,7 @@ var renderSlot = (slotContent, slotProps, fallback = null) => {
|
|
|
1008
1010
|
}
|
|
1009
1011
|
return typeof slotContent === "function" ? slotContent(slotProps) : slotContent;
|
|
1010
1012
|
};
|
|
1011
|
-
var InfiniteScroll = (0,
|
|
1013
|
+
var InfiniteScroll = (0, import_react15.forwardRef)(
|
|
1012
1014
|
({
|
|
1013
1015
|
data,
|
|
1014
1016
|
buffer = 0,
|
|
@@ -1029,34 +1031,34 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1029
1031
|
onlyPrevious = false,
|
|
1030
1032
|
...props
|
|
1031
1033
|
}, ref) => {
|
|
1032
|
-
const [startElementFromRef, setStartElementFromRef] = (0,
|
|
1033
|
-
const startElementRef = (0,
|
|
1034
|
-
const [endElementFromRef, setEndElementFromRef] = (0,
|
|
1035
|
-
const endElementRef = (0,
|
|
1036
|
-
const [itemsElementFromRef, setItemsElementFromRef] = (0,
|
|
1037
|
-
const itemsElementRef = (0,
|
|
1038
|
-
const [loadingPrevious, setLoadingPrevious] = (0,
|
|
1039
|
-
const [loadingNext, setLoadingNext] = (0,
|
|
1040
|
-
const [requestCount, setRequestCount] = (0,
|
|
1041
|
-
const [hasPreviousPage, setHasPreviousPage] = (0,
|
|
1042
|
-
const [hasNextPage, setHasNextPage] = (0,
|
|
1043
|
-
const [resolvedStartElement, setResolvedStartElement] = (0,
|
|
1044
|
-
const [resolvedEndElement, setResolvedEndElement] = (0,
|
|
1045
|
-
const [resolvedItemsElement, setResolvedItemsElement] = (0,
|
|
1046
|
-
(0,
|
|
1034
|
+
const [startElementFromRef, setStartElementFromRef] = (0, import_react15.useState)(null);
|
|
1035
|
+
const startElementRef = (0, import_react15.useCallback)((node) => setStartElementFromRef(node), []);
|
|
1036
|
+
const [endElementFromRef, setEndElementFromRef] = (0, import_react15.useState)(null);
|
|
1037
|
+
const endElementRef = (0, import_react15.useCallback)((node) => setEndElementFromRef(node), []);
|
|
1038
|
+
const [itemsElementFromRef, setItemsElementFromRef] = (0, import_react15.useState)(null);
|
|
1039
|
+
const itemsElementRef = (0, import_react15.useCallback)((node) => setItemsElementFromRef(node), []);
|
|
1040
|
+
const [loadingPrevious, setLoadingPrevious] = (0, import_react15.useState)(false);
|
|
1041
|
+
const [loadingNext, setLoadingNext] = (0, import_react15.useState)(false);
|
|
1042
|
+
const [requestCount, setRequestCount] = (0, import_react15.useState)(0);
|
|
1043
|
+
const [hasPreviousPage, setHasPreviousPage] = (0, import_react15.useState)(false);
|
|
1044
|
+
const [hasNextPage, setHasNextPage] = (0, import_react15.useState)(false);
|
|
1045
|
+
const [resolvedStartElement, setResolvedStartElement] = (0, import_react15.useState)(null);
|
|
1046
|
+
const [resolvedEndElement, setResolvedEndElement] = (0, import_react15.useState)(null);
|
|
1047
|
+
const [resolvedItemsElement, setResolvedItemsElement] = (0, import_react15.useState)(null);
|
|
1048
|
+
(0, import_react15.useEffect)(() => {
|
|
1047
1049
|
const element = startElement ? resolveHTMLElement(startElement, startElementFromRef) : startElementFromRef;
|
|
1048
1050
|
setResolvedStartElement(element);
|
|
1049
1051
|
}, [startElement, startElementFromRef]);
|
|
1050
|
-
(0,
|
|
1052
|
+
(0, import_react15.useEffect)(() => {
|
|
1051
1053
|
const element = endElement ? resolveHTMLElement(endElement, endElementFromRef) : endElementFromRef;
|
|
1052
1054
|
setResolvedEndElement(element);
|
|
1053
1055
|
}, [endElement, endElementFromRef]);
|
|
1054
|
-
(0,
|
|
1056
|
+
(0, import_react15.useEffect)(() => {
|
|
1055
1057
|
const element = itemsElement ? resolveHTMLElement(itemsElement, itemsElementFromRef) : itemsElementFromRef;
|
|
1056
1058
|
setResolvedItemsElement(element);
|
|
1057
1059
|
}, [itemsElement, itemsElementFromRef]);
|
|
1058
|
-
const scrollableParent = (0,
|
|
1059
|
-
const callbackPropsRef = (0,
|
|
1060
|
+
const scrollableParent = (0, import_react15.useMemo)(() => (0, import_core6.getScrollableParent)(resolvedItemsElement), [resolvedItemsElement]);
|
|
1061
|
+
const callbackPropsRef = (0, import_react15.useRef)({
|
|
1060
1062
|
buffer,
|
|
1061
1063
|
onlyNext,
|
|
1062
1064
|
onlyPrevious,
|
|
@@ -1070,10 +1072,10 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1070
1072
|
reverse,
|
|
1071
1073
|
preserveUrl
|
|
1072
1074
|
};
|
|
1073
|
-
const [infiniteScroll, setInfiniteScroll] = (0,
|
|
1074
|
-
const dataManager = (0,
|
|
1075
|
-
const elementManager = (0,
|
|
1076
|
-
const scrollToBottom = (0,
|
|
1075
|
+
const [infiniteScroll, setInfiniteScroll] = (0, import_react15.useState)(null);
|
|
1076
|
+
const dataManager = (0, import_react15.useMemo)(() => infiniteScroll?.dataManager, [infiniteScroll]);
|
|
1077
|
+
const elementManager = (0, import_react15.useMemo)(() => infiniteScroll?.elementManager, [infiniteScroll]);
|
|
1078
|
+
const scrollToBottom = (0, import_react15.useCallback)(() => {
|
|
1077
1079
|
if (scrollableParent) {
|
|
1078
1080
|
scrollableParent.scrollTo({
|
|
1079
1081
|
top: scrollableParent.scrollHeight,
|
|
@@ -1086,7 +1088,7 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1086
1088
|
});
|
|
1087
1089
|
}
|
|
1088
1090
|
}, [scrollableParent]);
|
|
1089
|
-
(0,
|
|
1091
|
+
(0, import_react15.useEffect)(() => {
|
|
1090
1092
|
if (!resolvedItemsElement) {
|
|
1091
1093
|
return;
|
|
1092
1094
|
}
|
|
@@ -1134,21 +1136,21 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1134
1136
|
setInfiniteScroll(null);
|
|
1135
1137
|
};
|
|
1136
1138
|
}, [data, resolvedItemsElement, resolvedStartElement, resolvedEndElement, scrollableParent]);
|
|
1137
|
-
const manualMode = (0,
|
|
1139
|
+
const manualMode = (0, import_react15.useMemo)(
|
|
1138
1140
|
() => manual || manualAfter > 0 && requestCount >= manualAfter,
|
|
1139
1141
|
[manual, manualAfter, requestCount]
|
|
1140
1142
|
);
|
|
1141
|
-
const autoLoad = (0,
|
|
1142
|
-
(0,
|
|
1143
|
+
const autoLoad = (0, import_react15.useMemo)(() => !manualMode, [manualMode]);
|
|
1144
|
+
(0, import_react15.useEffect)(() => {
|
|
1143
1145
|
autoLoad ? elementManager?.enableTriggers() : elementManager?.disableTriggers();
|
|
1144
1146
|
}, [autoLoad, onlyNext, onlyPrevious, resolvedStartElement, resolvedEndElement]);
|
|
1145
|
-
(0,
|
|
1147
|
+
(0, import_react15.useEffect)(() => {
|
|
1146
1148
|
const shouldAutoScroll = autoScroll !== void 0 ? autoScroll : reverse;
|
|
1147
1149
|
if (shouldAutoScroll) {
|
|
1148
1150
|
scrollToBottom();
|
|
1149
1151
|
}
|
|
1150
1152
|
}, [scrollableParent]);
|
|
1151
|
-
(0,
|
|
1153
|
+
(0, import_react15.useImperativeHandle)(
|
|
1152
1154
|
ref,
|
|
1153
1155
|
() => ({
|
|
1154
1156
|
fetchNext: dataManager?.fetchNext || (() => {
|
|
@@ -1194,7 +1196,7 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1194
1196
|
const renderElements = [];
|
|
1195
1197
|
if (!startElement) {
|
|
1196
1198
|
renderElements.push(
|
|
1197
|
-
(0,
|
|
1199
|
+
(0, import_react15.createElement)(
|
|
1198
1200
|
"div",
|
|
1199
1201
|
{ ref: startElementRef },
|
|
1200
1202
|
// Render previous slot or fallback to loading indicator
|
|
@@ -1203,7 +1205,7 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1203
1205
|
);
|
|
1204
1206
|
}
|
|
1205
1207
|
renderElements.push(
|
|
1206
|
-
(0,
|
|
1208
|
+
(0, import_react15.createElement)(
|
|
1207
1209
|
as,
|
|
1208
1210
|
{ ...props, ref: itemsElementRef },
|
|
1209
1211
|
typeof children === "function" ? children(exposedSlot) : children
|
|
@@ -1211,7 +1213,7 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1211
1213
|
);
|
|
1212
1214
|
if (!endElement) {
|
|
1213
1215
|
renderElements.push(
|
|
1214
|
-
(0,
|
|
1216
|
+
(0, import_react15.createElement)(
|
|
1215
1217
|
"div",
|
|
1216
1218
|
{ ref: endElementRef },
|
|
1217
1219
|
// Render next slot or fallback to loading indicator
|
|
@@ -1219,7 +1221,7 @@ var InfiniteScroll = (0, import_react13.forwardRef)(
|
|
|
1219
1221
|
)
|
|
1220
1222
|
);
|
|
1221
1223
|
}
|
|
1222
|
-
return (0,
|
|
1224
|
+
return (0, import_react15.createElement)(import_react15.default.Fragment, {}, ...reverse ? [...renderElements].reverse() : renderElements);
|
|
1223
1225
|
}
|
|
1224
1226
|
);
|
|
1225
1227
|
InfiniteScroll.displayName = "InertiaInfiniteScroll";
|
|
@@ -1227,9 +1229,9 @@ var InfiniteScroll_default = InfiniteScroll;
|
|
|
1227
1229
|
|
|
1228
1230
|
// src/Link.ts
|
|
1229
1231
|
var import_core7 = require("@inertiajs/core");
|
|
1230
|
-
var
|
|
1232
|
+
var import_react16 = require("react");
|
|
1231
1233
|
var noop2 = () => void 0;
|
|
1232
|
-
var Link = (0,
|
|
1234
|
+
var Link = (0, import_react16.forwardRef)(
|
|
1233
1235
|
({
|
|
1234
1236
|
children,
|
|
1235
1237
|
as = "a",
|
|
@@ -1262,24 +1264,24 @@ var Link = (0, import_react14.forwardRef)(
|
|
|
1262
1264
|
viewTransition = false,
|
|
1263
1265
|
...props
|
|
1264
1266
|
}, ref) => {
|
|
1265
|
-
const [inFlightCount, setInFlightCount] = (0,
|
|
1266
|
-
const hoverTimeout = (0,
|
|
1267
|
-
const _method = (0,
|
|
1267
|
+
const [inFlightCount, setInFlightCount] = (0, import_react16.useState)(0);
|
|
1268
|
+
const hoverTimeout = (0, import_react16.useRef)(void 0);
|
|
1269
|
+
const _method = (0, import_react16.useMemo)(() => {
|
|
1268
1270
|
return (0, import_core7.isUrlMethodPair)(href) ? href.method : method.toLowerCase();
|
|
1269
1271
|
}, [href, method]);
|
|
1270
|
-
const _as = (0,
|
|
1272
|
+
const _as = (0, import_react16.useMemo)(() => {
|
|
1271
1273
|
if (typeof as !== "string" || as.toLowerCase() !== "a") {
|
|
1272
1274
|
return as;
|
|
1273
1275
|
}
|
|
1274
1276
|
return _method !== "get" ? "button" : as.toLowerCase();
|
|
1275
1277
|
}, [as, _method]);
|
|
1276
|
-
const mergeDataArray = (0,
|
|
1278
|
+
const mergeDataArray = (0, import_react16.useMemo)(
|
|
1277
1279
|
() => (0, import_core7.mergeDataIntoQueryString)(_method, (0, import_core7.isUrlMethodPair)(href) ? href.url : href, data, queryStringArrayFormat),
|
|
1278
1280
|
[href, _method, data, queryStringArrayFormat]
|
|
1279
1281
|
);
|
|
1280
|
-
const url = (0,
|
|
1281
|
-
const _data = (0,
|
|
1282
|
-
const baseParams = (0,
|
|
1282
|
+
const url = (0, import_react16.useMemo)(() => mergeDataArray[0], [mergeDataArray]);
|
|
1283
|
+
const _data = (0, import_react16.useMemo)(() => mergeDataArray[1], [mergeDataArray]);
|
|
1284
|
+
const baseParams = (0, import_react16.useMemo)(
|
|
1283
1285
|
() => ({
|
|
1284
1286
|
data: _data,
|
|
1285
1287
|
method: _method,
|
|
@@ -1294,7 +1296,7 @@ var Link = (0, import_react14.forwardRef)(
|
|
|
1294
1296
|
}),
|
|
1295
1297
|
[_data, _method, preserveScroll, preserveState, preserveUrl, replace, only, except, headers, async]
|
|
1296
1298
|
);
|
|
1297
|
-
const visitParams = (0,
|
|
1299
|
+
const visitParams = (0, import_react16.useMemo)(
|
|
1298
1300
|
() => ({
|
|
1299
1301
|
...baseParams,
|
|
1300
1302
|
viewTransition,
|
|
@@ -1326,7 +1328,7 @@ var Link = (0, import_react14.forwardRef)(
|
|
|
1326
1328
|
onError
|
|
1327
1329
|
]
|
|
1328
1330
|
);
|
|
1329
|
-
const prefetchModes = (0,
|
|
1331
|
+
const prefetchModes = (0, import_react16.useMemo)(
|
|
1330
1332
|
() => {
|
|
1331
1333
|
if (prefetch === true) {
|
|
1332
1334
|
return ["hover"];
|
|
@@ -1341,7 +1343,7 @@ var Link = (0, import_react14.forwardRef)(
|
|
|
1341
1343
|
},
|
|
1342
1344
|
Array.isArray(prefetch) ? prefetch : [prefetch]
|
|
1343
1345
|
);
|
|
1344
|
-
const cacheForValue = (0,
|
|
1346
|
+
const cacheForValue = (0, import_react16.useMemo)(() => {
|
|
1345
1347
|
if (cacheFor !== 0) {
|
|
1346
1348
|
return cacheFor;
|
|
1347
1349
|
}
|
|
@@ -1350,7 +1352,7 @@ var Link = (0, import_react14.forwardRef)(
|
|
|
1350
1352
|
}
|
|
1351
1353
|
return config.get("prefetch.cacheFor");
|
|
1352
1354
|
}, [cacheFor, prefetchModes]);
|
|
1353
|
-
const doPrefetch = (0,
|
|
1355
|
+
const doPrefetch = (0, import_react16.useMemo)(() => {
|
|
1354
1356
|
return () => {
|
|
1355
1357
|
import_core7.router.prefetch(
|
|
1356
1358
|
url,
|
|
@@ -1363,12 +1365,12 @@ var Link = (0, import_react14.forwardRef)(
|
|
|
1363
1365
|
);
|
|
1364
1366
|
};
|
|
1365
1367
|
}, [url, baseParams, onPrefetching, onPrefetched, cacheForValue, cacheTags]);
|
|
1366
|
-
(0,
|
|
1368
|
+
(0, import_react16.useEffect)(() => {
|
|
1367
1369
|
return () => {
|
|
1368
1370
|
clearTimeout(hoverTimeout.current);
|
|
1369
1371
|
};
|
|
1370
1372
|
}, []);
|
|
1371
|
-
(0,
|
|
1373
|
+
(0, import_react16.useEffect)(() => {
|
|
1372
1374
|
if (prefetchModes.includes("mount")) {
|
|
1373
1375
|
setTimeout(() => doPrefetch());
|
|
1374
1376
|
}
|
|
@@ -1425,7 +1427,7 @@ var Link = (0, import_react14.forwardRef)(
|
|
|
1425
1427
|
}
|
|
1426
1428
|
}
|
|
1427
1429
|
};
|
|
1428
|
-
const elProps = (0,
|
|
1430
|
+
const elProps = (0, import_react16.useMemo)(() => {
|
|
1429
1431
|
if (_as === "button") {
|
|
1430
1432
|
return { type: "button" };
|
|
1431
1433
|
}
|
|
@@ -1434,7 +1436,7 @@ var Link = (0, import_react14.forwardRef)(
|
|
|
1434
1436
|
}
|
|
1435
1437
|
return {};
|
|
1436
1438
|
}, [_as, url]);
|
|
1437
|
-
return (0,
|
|
1439
|
+
return (0, import_react16.createElement)(
|
|
1438
1440
|
_as,
|
|
1439
1441
|
{
|
|
1440
1442
|
...props,
|
|
@@ -1460,18 +1462,18 @@ var Link_default = Link;
|
|
|
1460
1462
|
|
|
1461
1463
|
// src/usePoll.ts
|
|
1462
1464
|
var import_core8 = require("@inertiajs/core");
|
|
1463
|
-
var
|
|
1465
|
+
var import_react17 = require("react");
|
|
1464
1466
|
function usePoll(interval, requestOptions = {}, options = {
|
|
1465
1467
|
keepAlive: false,
|
|
1466
1468
|
autoStart: true
|
|
1467
1469
|
}) {
|
|
1468
|
-
const pollRef = (0,
|
|
1470
|
+
const pollRef = (0, import_react17.useRef)(
|
|
1469
1471
|
import_core8.router.poll(interval, requestOptions, {
|
|
1470
1472
|
...options,
|
|
1471
1473
|
autoStart: false
|
|
1472
1474
|
})
|
|
1473
1475
|
);
|
|
1474
|
-
(0,
|
|
1476
|
+
(0, import_react17.useEffect)(() => {
|
|
1475
1477
|
if (options.autoStart ?? true) {
|
|
1476
1478
|
pollRef.current.start();
|
|
1477
1479
|
}
|
|
@@ -1485,14 +1487,14 @@ function usePoll(interval, requestOptions = {}, options = {
|
|
|
1485
1487
|
|
|
1486
1488
|
// src/usePrefetch.ts
|
|
1487
1489
|
var import_core9 = require("@inertiajs/core");
|
|
1488
|
-
var
|
|
1490
|
+
var import_react18 = require("react");
|
|
1489
1491
|
function usePrefetch(options = {}) {
|
|
1490
1492
|
const cached = typeof window === "undefined" ? null : import_core9.router.getCached(window.location.pathname, options);
|
|
1491
1493
|
const inFlight = typeof window === "undefined" ? null : import_core9.router.getPrefetching(window.location.pathname, options);
|
|
1492
|
-
const [lastUpdatedAt, setLastUpdatedAt] = (0,
|
|
1493
|
-
const [isPrefetching, setIsPrefetching] = (0,
|
|
1494
|
-
const [isPrefetched, setIsPrefetched] = (0,
|
|
1495
|
-
(0,
|
|
1494
|
+
const [lastUpdatedAt, setLastUpdatedAt] = (0, import_react18.useState)(cached?.staleTimestamp || null);
|
|
1495
|
+
const [isPrefetching, setIsPrefetching] = (0, import_react18.useState)(inFlight !== null);
|
|
1496
|
+
const [isPrefetched, setIsPrefetched] = (0, import_react18.useState)(cached !== null);
|
|
1497
|
+
(0, import_react18.useEffect)(() => {
|
|
1496
1498
|
const onPrefetchingListener = import_core9.router.on("prefetching", (e) => {
|
|
1497
1499
|
if (e.detail.visit.url.pathname === window.location.pathname) {
|
|
1498
1500
|
setIsPrefetching(true);
|
|
@@ -1520,25 +1522,25 @@ function usePrefetch(options = {}) {
|
|
|
1520
1522
|
|
|
1521
1523
|
// src/WhenVisible.ts
|
|
1522
1524
|
var import_core10 = require("@inertiajs/core");
|
|
1523
|
-
var
|
|
1525
|
+
var import_react19 = require("react");
|
|
1524
1526
|
var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) => {
|
|
1525
1527
|
always = always ?? false;
|
|
1526
1528
|
as = as ?? "div";
|
|
1527
1529
|
fallback = fallback ?? null;
|
|
1528
1530
|
const pageProps = usePage().props;
|
|
1529
|
-
const keys = (0,
|
|
1530
|
-
const [loaded, setLoaded] = (0,
|
|
1531
|
-
const [isFetching, setIsFetching] = (0,
|
|
1532
|
-
const fetching = (0,
|
|
1533
|
-
const ref = (0,
|
|
1534
|
-
const observer = (0,
|
|
1535
|
-
const getReloadParamsRef = (0,
|
|
1536
|
-
(0,
|
|
1531
|
+
const keys = (0, import_react19.useMemo)(() => data ? Array.isArray(data) ? data : [data] : [], [data]);
|
|
1532
|
+
const [loaded, setLoaded] = (0, import_react19.useState)(() => keys.length > 0 && keys.every((key) => pageProps[key] !== void 0));
|
|
1533
|
+
const [isFetching, setIsFetching] = (0, import_react19.useState)(false);
|
|
1534
|
+
const fetching = (0, import_react19.useRef)(false);
|
|
1535
|
+
const ref = (0, import_react19.useRef)(null);
|
|
1536
|
+
const observer = (0, import_react19.useRef)(null);
|
|
1537
|
+
const getReloadParamsRef = (0, import_react19.useRef)(() => ({}));
|
|
1538
|
+
(0, import_react19.useEffect)(() => {
|
|
1537
1539
|
if (keys.length > 0) {
|
|
1538
1540
|
setLoaded(keys.every((key) => pageProps[key] !== void 0));
|
|
1539
1541
|
}
|
|
1540
1542
|
}, [pageProps, keys]);
|
|
1541
|
-
const getReloadParams = (0,
|
|
1543
|
+
const getReloadParams = (0, import_react19.useCallback)(() => {
|
|
1542
1544
|
const reloadParams = { ...params };
|
|
1543
1545
|
if (data) {
|
|
1544
1546
|
reloadParams.only = Array.isArray(data) ? data : [data];
|
|
@@ -1586,7 +1588,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
|
|
|
1586
1588
|
);
|
|
1587
1589
|
observer.current.observe(ref.current);
|
|
1588
1590
|
};
|
|
1589
|
-
(0,
|
|
1591
|
+
(0, import_react19.useEffect)(() => {
|
|
1590
1592
|
if (!ref.current) {
|
|
1591
1593
|
return;
|
|
1592
1594
|
}
|
|
@@ -1601,7 +1603,7 @@ var WhenVisible = ({ children, data, params, buffer, as, always, fallback }) =>
|
|
|
1601
1603
|
const resolveChildren = () => typeof children === "function" ? children({ fetching: isFetching }) : children;
|
|
1602
1604
|
const resolveFallback = () => typeof fallback === "function" ? fallback() : fallback;
|
|
1603
1605
|
if (always || !loaded) {
|
|
1604
|
-
return (0,
|
|
1606
|
+
return (0, import_react19.createElement)(
|
|
1605
1607
|
as,
|
|
1606
1608
|
{
|
|
1607
1609
|
props: null,
|