@inertiajs/react 2.3.10 → 2.3.12
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 +34 -24
- package/dist/index.esm.js.map +4 -4
- package/dist/index.js +168 -158
- 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.esm.js
CHANGED
|
@@ -192,12 +192,21 @@ async function createInertiaApp({
|
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
// src/Deferred.ts
|
|
195
|
-
import { useEffect as
|
|
195
|
+
import { useEffect as useEffect3, useMemo as useMemo2, useState as useState2 } from "react";
|
|
196
|
+
|
|
197
|
+
// src/usePage.ts
|
|
198
|
+
import React2 from "react";
|
|
199
|
+
|
|
200
|
+
// src/react.ts
|
|
201
|
+
import React, { useEffect as useEffect2, useLayoutEffect } from "react";
|
|
202
|
+
function useIsomorphicLayoutEffect(effect, deps) {
|
|
203
|
+
typeof window === "undefined" ? useEffect2(effect, deps) : useLayoutEffect(effect, deps);
|
|
204
|
+
}
|
|
205
|
+
var isReact19 = typeof React.use === "function";
|
|
196
206
|
|
|
197
207
|
// src/usePage.ts
|
|
198
|
-
import React from "react";
|
|
199
208
|
function usePage() {
|
|
200
|
-
const page =
|
|
209
|
+
const page = isReact19 ? React2.use(PageContext_default) : React2.useContext(PageContext_default);
|
|
201
210
|
if (!page) {
|
|
202
211
|
throw new Error("usePage must be used within the Inertia component");
|
|
203
212
|
}
|
|
@@ -220,7 +229,7 @@ var Deferred = ({ children, data, fallback }) => {
|
|
|
220
229
|
const [loaded, setLoaded] = useState2(false);
|
|
221
230
|
const pageProps = usePage().props;
|
|
222
231
|
const keys = useMemo2(() => Array.isArray(data) ? data : [data], [data]);
|
|
223
|
-
|
|
232
|
+
useEffect3(() => {
|
|
224
233
|
const removeListener = router3.on("start", (e) => {
|
|
225
234
|
const isPartialVisit = e.detail.visit.only.length > 0 || e.detail.visit.except.length > 0;
|
|
226
235
|
const isReloadingKey = e.detail.visit.only.find((key) => keys.includes(key));
|
|
@@ -232,10 +241,11 @@ var Deferred = ({ children, data, fallback }) => {
|
|
|
232
241
|
removeListener();
|
|
233
242
|
};
|
|
234
243
|
}, []);
|
|
235
|
-
|
|
244
|
+
useEffect3(() => {
|
|
236
245
|
setLoaded(keys.every((key) => pageProps[key] !== void 0));
|
|
237
246
|
}, [pageProps, keys]);
|
|
238
|
-
|
|
247
|
+
const propsAreDefined = useMemo2(() => keys.every((key) => pageProps[key] !== void 0), [keys, pageProps]);
|
|
248
|
+
if (loaded && propsAreDefined) {
|
|
239
249
|
return typeof children === "function" ? children() : children;
|
|
240
250
|
}
|
|
241
251
|
return typeof fallback === "function" ? fallback() : fallback;
|
|
@@ -253,7 +263,7 @@ import {
|
|
|
253
263
|
UseFormUtils as UseFormUtils2
|
|
254
264
|
} from "@inertiajs/core";
|
|
255
265
|
import { isEqual as isEqual2 } from "lodash-es";
|
|
256
|
-
import
|
|
266
|
+
import React3, {
|
|
257
267
|
createContext as createContext3,
|
|
258
268
|
createElement as createElement3,
|
|
259
269
|
forwardRef,
|
|
@@ -278,12 +288,6 @@ import {
|
|
|
278
288
|
import { cloneDeep, get, has, isEqual, set } from "lodash-es";
|
|
279
289
|
import { useCallback, useEffect as useEffect5, useMemo as useMemo3, useRef, useState as useState4 } from "react";
|
|
280
290
|
|
|
281
|
-
// src/react.ts
|
|
282
|
-
import { useEffect as useEffect3, useLayoutEffect } from "react";
|
|
283
|
-
function useIsomorphicLayoutEffect(effect, deps) {
|
|
284
|
-
typeof window === "undefined" ? useEffect3(effect, deps) : useLayoutEffect(effect, deps);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
291
|
// src/useRemember.ts
|
|
288
292
|
import { router as router4 } from "@inertiajs/core";
|
|
289
293
|
import { useEffect as useEffect4, useState as useState3 } from "react";
|
|
@@ -397,7 +401,9 @@ function useForm(...args) {
|
|
|
397
401
|
if (isMounted.current) {
|
|
398
402
|
setProcessing(false);
|
|
399
403
|
setProgress(null);
|
|
400
|
-
|
|
404
|
+
setErrors(errors2);
|
|
405
|
+
setHasErrors(Object.keys(errors2).length > 0);
|
|
406
|
+
validatorRef.current?.setErrors(errors2);
|
|
401
407
|
}
|
|
402
408
|
if (options.onError) {
|
|
403
409
|
return options.onError(errors2);
|
|
@@ -668,7 +674,7 @@ function useForm(...args) {
|
|
|
668
674
|
|
|
669
675
|
// src/Form.ts
|
|
670
676
|
var deferStateUpdate = (callback) => {
|
|
671
|
-
typeof
|
|
677
|
+
typeof React3.startTransition === "function" ? React3.startTransition(callback) : setTimeout(callback, 0);
|
|
672
678
|
};
|
|
673
679
|
var noop = () => void 0;
|
|
674
680
|
var FormContext = createContext3(void 0);
|
|
@@ -786,6 +792,11 @@ var Form = forwardRef(
|
|
|
786
792
|
};
|
|
787
793
|
const submit = (submitter) => {
|
|
788
794
|
const [url, data] = getUrlAndData(submitter);
|
|
795
|
+
const formTarget = submitter?.getAttribute("formtarget");
|
|
796
|
+
if (formTarget === "_blank" && resolvedMethod === "get") {
|
|
797
|
+
window.open(url, "_blank");
|
|
798
|
+
return;
|
|
799
|
+
}
|
|
789
800
|
const submitOptions = {
|
|
790
801
|
headers,
|
|
791
802
|
queryStringArrayFormat,
|
|
@@ -860,11 +871,10 @@ var Form = forwardRef(
|
|
|
860
871
|
event.preventDefault();
|
|
861
872
|
submit(event.nativeEvent.submitter);
|
|
862
873
|
},
|
|
863
|
-
//
|
|
864
|
-
//
|
|
865
|
-
// Unfortunately, React 19 treats an empty string as `false`.
|
|
874
|
+
// React 19 supports passing a boolean to the `inert` attribute, but shows
|
|
875
|
+
// a warning when receiving a string. Earlier versions require the string 'true'.
|
|
866
876
|
// See: https://github.com/inertiajs/inertia/pull/2536
|
|
867
|
-
inert: disableWhileProcessing && form.processing && "true"
|
|
877
|
+
inert: disableWhileProcessing && form.processing && (isReact19 ? true : "true")
|
|
868
878
|
},
|
|
869
879
|
typeof children === "function" ? children(exposed) : children
|
|
870
880
|
);
|
|
@@ -879,7 +889,7 @@ var Form_default = Form;
|
|
|
879
889
|
|
|
880
890
|
// src/Head.ts
|
|
881
891
|
import { escape } from "lodash-es";
|
|
882
|
-
import
|
|
892
|
+
import React4, { useContext as useContext2, useEffect as useEffect7, useMemo as useMemo5 } from "react";
|
|
883
893
|
var Head = function({ children, title }) {
|
|
884
894
|
const headManager = useContext2(HeadContext_default);
|
|
885
895
|
const provider = useMemo5(() => headManager.createProvider(), [headManager]);
|
|
@@ -947,7 +957,7 @@ var Head = function({ children, title }) {
|
|
|
947
957
|
return html;
|
|
948
958
|
}
|
|
949
959
|
function ensureNodeHasInertiaProp(node) {
|
|
950
|
-
return
|
|
960
|
+
return React4.cloneElement(node, {
|
|
951
961
|
[provider.preferredAttribute()]: node.props["head-key"] !== void 0 ? node.props["head-key"] : ""
|
|
952
962
|
});
|
|
953
963
|
}
|
|
@@ -955,7 +965,7 @@ var Head = function({ children, title }) {
|
|
|
955
965
|
return renderTag(ensureNodeHasInertiaProp(node));
|
|
956
966
|
}
|
|
957
967
|
function renderNodes(nodes) {
|
|
958
|
-
const elements =
|
|
968
|
+
const elements = React4.Children.toArray(nodes).filter((node) => node).map((node) => renderNode(node));
|
|
959
969
|
if (title && !elements.find((tag) => tag.startsWith("<title"))) {
|
|
960
970
|
elements.push(`<title ${provider.preferredAttribute()}>${title}</title>`);
|
|
961
971
|
}
|
|
@@ -973,7 +983,7 @@ import {
|
|
|
973
983
|
getScrollableParent,
|
|
974
984
|
useInfiniteScroll
|
|
975
985
|
} from "@inertiajs/core";
|
|
976
|
-
import
|
|
986
|
+
import React5, {
|
|
977
987
|
createElement as createElement4,
|
|
978
988
|
forwardRef as forwardRef2,
|
|
979
989
|
useCallback as useCallback2,
|
|
@@ -1212,7 +1222,7 @@ var InfiniteScroll = forwardRef2(
|
|
|
1212
1222
|
)
|
|
1213
1223
|
);
|
|
1214
1224
|
}
|
|
1215
|
-
return createElement4(
|
|
1225
|
+
return createElement4(React5.Fragment, {}, ...reverse ? [...renderElements].reverse() : renderElements);
|
|
1216
1226
|
}
|
|
1217
1227
|
);
|
|
1218
1228
|
InfiniteScroll.displayName = "InertiaInfiniteScroll";
|