@inertiajs/core 2.2.5 → 2.2.7
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 +65 -51
- package/dist/index.esm.js.map +2 -2
- package/dist/index.js +65 -51
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
- package/types/history.d.ts +2 -2
- package/types/index.d.ts +1 -1
- package/types/infiniteScroll/data.d.ts +2 -2
- package/types/types.d.ts +5 -5
- package/types/url.d.ts +2 -0
package/dist/index.esm.js
CHANGED
|
@@ -352,7 +352,7 @@ var transformUrlAndData = (href, data, method, forceFormData, queryStringArrayFo
|
|
|
352
352
|
};
|
|
353
353
|
function mergeDataIntoQueryString(method, href, data, qsArrayFormat = "brackets") {
|
|
354
354
|
const hasDataForQueryString = method === "get" && !isFormData(data) && Object.keys(data).length > 0;
|
|
355
|
-
const hasHost =
|
|
355
|
+
const hasHost = urlHasProtocol(href.toString());
|
|
356
356
|
const hasAbsolutePath = hasHost || href.toString().startsWith("/") || href.toString() === "";
|
|
357
357
|
const hasRelativePath = !hasAbsolutePath && !href.toString().startsWith("#") && !href.toString().startsWith("?");
|
|
358
358
|
const hasRelativePathWithDotPrefix = /^[.]{1,2}([/]|$)/.test(href.toString());
|
|
@@ -396,6 +396,13 @@ var isSameUrlWithoutHash = (url1, url2) => {
|
|
|
396
396
|
function isUrlMethodPair(href) {
|
|
397
397
|
return href !== null && typeof href === "object" && href !== void 0 && "url" in href && "method" in href;
|
|
398
398
|
}
|
|
399
|
+
function urlHasProtocol(url) {
|
|
400
|
+
return /^[a-z][a-z0-9+.-]*:\/\//i.test(url);
|
|
401
|
+
}
|
|
402
|
+
function urlToString(url, absolute) {
|
|
403
|
+
const urlObj = typeof url === "string" ? hrefToUrl(url) : url;
|
|
404
|
+
return absolute ? `${urlObj.protocol}//${urlObj.host}${urlObj.pathname}${urlObj.search}${urlObj.hash}` : `${urlObj.pathname}${urlObj.search}${urlObj.hash}`;
|
|
405
|
+
}
|
|
399
406
|
|
|
400
407
|
// src/page.ts
|
|
401
408
|
var CurrentPage = class {
|
|
@@ -582,15 +589,13 @@ var History = class {
|
|
|
582
589
|
this.current = page2;
|
|
583
590
|
queue.add(() => {
|
|
584
591
|
return this.getPageData(page2).then((data) => {
|
|
585
|
-
const doPush = () => {
|
|
586
|
-
this.doPushState({ page: data }, page2.url);
|
|
587
|
-
cb && cb();
|
|
588
|
-
};
|
|
592
|
+
const doPush = () => this.doPushState({ page: data }, page2.url).then(() => cb?.());
|
|
589
593
|
if (isChromeIOS) {
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
594
|
+
return new Promise((resolve) => {
|
|
595
|
+
setTimeout(() => doPush().then(resolve));
|
|
596
|
+
});
|
|
593
597
|
}
|
|
598
|
+
return doPush();
|
|
594
599
|
});
|
|
595
600
|
});
|
|
596
601
|
}
|
|
@@ -628,7 +633,7 @@ var History = class {
|
|
|
628
633
|
if (!window.history.state?.page) {
|
|
629
634
|
return;
|
|
630
635
|
}
|
|
631
|
-
this.doReplaceState({
|
|
636
|
+
return this.doReplaceState({
|
|
632
637
|
page: window.history.state.page,
|
|
633
638
|
scrollRegions
|
|
634
639
|
});
|
|
@@ -641,7 +646,7 @@ var History = class {
|
|
|
641
646
|
if (!window.history.state?.page) {
|
|
642
647
|
return;
|
|
643
648
|
}
|
|
644
|
-
this.doReplaceState({
|
|
649
|
+
return this.doReplaceState({
|
|
645
650
|
page: window.history.state.page,
|
|
646
651
|
documentScrollPosition: scrollRegion
|
|
647
652
|
});
|
|
@@ -666,31 +671,31 @@ var History = class {
|
|
|
666
671
|
this.current = page2;
|
|
667
672
|
queue.add(() => {
|
|
668
673
|
return this.getPageData(page2).then((data) => {
|
|
669
|
-
const doReplace = () => {
|
|
670
|
-
this.doReplaceState({ page: data }, page2.url);
|
|
671
|
-
cb && cb();
|
|
672
|
-
};
|
|
674
|
+
const doReplace = () => this.doReplaceState({ page: data }, page2.url).then(() => cb?.());
|
|
673
675
|
if (isChromeIOS) {
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
676
|
+
return new Promise((resolve) => {
|
|
677
|
+
setTimeout(() => doReplace().then(resolve));
|
|
678
|
+
});
|
|
677
679
|
}
|
|
680
|
+
return doReplace();
|
|
678
681
|
});
|
|
679
682
|
});
|
|
680
683
|
}
|
|
681
684
|
doReplaceState(data, url) {
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
685
|
+
return Promise.resolve().then(
|
|
686
|
+
() => window.history.replaceState(
|
|
687
|
+
{
|
|
688
|
+
...data,
|
|
689
|
+
scrollRegions: data.scrollRegions ?? window.history.state?.scrollRegions,
|
|
690
|
+
documentScrollPosition: data.documentScrollPosition ?? window.history.state?.documentScrollPosition
|
|
691
|
+
},
|
|
692
|
+
"",
|
|
693
|
+
url
|
|
694
|
+
)
|
|
690
695
|
);
|
|
691
696
|
}
|
|
692
697
|
doPushState(data, url) {
|
|
693
|
-
window.history.pushState(data, "", url);
|
|
698
|
+
return Promise.resolve().then(() => window.history.pushState(data, "", url));
|
|
694
699
|
}
|
|
695
700
|
getState(key, defaultValue) {
|
|
696
701
|
return this.current?.[key] ?? defaultValue;
|
|
@@ -2378,33 +2383,37 @@ var useInfiniteScrollData = (options) => {
|
|
|
2378
2383
|
}
|
|
2379
2384
|
throw new Error(`The page object does not contain a scroll prop named "${options.getPropName()}".`);
|
|
2380
2385
|
};
|
|
2381
|
-
const { previousPage, nextPage, currentPage: lastLoadedPage } = getScrollPropFromCurrentPage();
|
|
2382
2386
|
const state = {
|
|
2383
|
-
component:
|
|
2387
|
+
component: null,
|
|
2384
2388
|
loading: false,
|
|
2385
|
-
previousPage,
|
|
2386
|
-
nextPage,
|
|
2387
|
-
lastLoadedPage,
|
|
2389
|
+
previousPage: null,
|
|
2390
|
+
nextPage: null,
|
|
2391
|
+
lastLoadedPage: null,
|
|
2388
2392
|
requestCount: 0
|
|
2389
2393
|
};
|
|
2394
|
+
const resetState = () => {
|
|
2395
|
+
const scrollProp = getScrollPropFromCurrentPage();
|
|
2396
|
+
state.component = page.get().component;
|
|
2397
|
+
state.loading = false;
|
|
2398
|
+
state.previousPage = scrollProp.previousPage;
|
|
2399
|
+
state.nextPage = scrollProp.nextPage;
|
|
2400
|
+
state.lastLoadedPage = scrollProp.currentPage;
|
|
2401
|
+
state.requestCount = 0;
|
|
2402
|
+
};
|
|
2390
2403
|
const getRememberKey = () => `inertia:infinite-scroll-data:${options.getPropName()}`;
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2404
|
+
if (typeof window !== "undefined") {
|
|
2405
|
+
resetState();
|
|
2406
|
+
const rememberedState = router.restore(getRememberKey());
|
|
2407
|
+
if (rememberedState && typeof rememberedState === "object") {
|
|
2408
|
+
state.previousPage = rememberedState.previousPage;
|
|
2409
|
+
state.nextPage = rememberedState.nextPage;
|
|
2410
|
+
state.lastLoadedPage = rememberedState.lastLoadedPage;
|
|
2411
|
+
state.requestCount = rememberedState.requestCount || 0;
|
|
2412
|
+
}
|
|
2397
2413
|
}
|
|
2398
2414
|
const removeEventListener = router.on("success", (event) => {
|
|
2399
|
-
if (state.component
|
|
2400
|
-
|
|
2401
|
-
}
|
|
2402
|
-
const scrollProp = getScrollPropFromCurrentPage();
|
|
2403
|
-
if (scrollProp.reset) {
|
|
2404
|
-
state.previousPage = scrollProp.previousPage;
|
|
2405
|
-
state.nextPage = scrollProp.nextPage;
|
|
2406
|
-
state.lastLoadedPage = scrollProp.currentPage;
|
|
2407
|
-
state.requestCount = 0;
|
|
2415
|
+
if (state.component === event.detail.page.component && getScrollPropFromCurrentPage().reset) {
|
|
2416
|
+
resetState();
|
|
2408
2417
|
}
|
|
2409
2418
|
});
|
|
2410
2419
|
const getScrollPropKeyForSide = (side) => {
|
|
@@ -2675,6 +2684,7 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2675
2684
|
var queue3 = new Queue();
|
|
2676
2685
|
var initialUrl;
|
|
2677
2686
|
var payloadUrl;
|
|
2687
|
+
var initialUrlWasAbsolute = null;
|
|
2678
2688
|
var useInfiniteScrollQueryString = (options) => {
|
|
2679
2689
|
let enabled = true;
|
|
2680
2690
|
const queuePageUpdate = (page2) => {
|
|
@@ -2685,8 +2695,10 @@ var useInfiniteScrollQueryString = (options) => {
|
|
|
2685
2695
|
return resolve();
|
|
2686
2696
|
}
|
|
2687
2697
|
if (!initialUrl || !payloadUrl) {
|
|
2688
|
-
|
|
2689
|
-
|
|
2698
|
+
const currentPageUrl = page.get().url;
|
|
2699
|
+
initialUrl = hrefToUrl(currentPageUrl);
|
|
2700
|
+
payloadUrl = hrefToUrl(currentPageUrl);
|
|
2701
|
+
initialUrlWasAbsolute = urlHasProtocol(currentPageUrl);
|
|
2690
2702
|
}
|
|
2691
2703
|
const pageName = options.getPageName();
|
|
2692
2704
|
const searchParams = payloadUrl.searchParams;
|
|
@@ -2698,14 +2710,14 @@ var useInfiniteScrollQueryString = (options) => {
|
|
|
2698
2710
|
setTimeout(() => resolve());
|
|
2699
2711
|
});
|
|
2700
2712
|
}).finally(() => {
|
|
2701
|
-
if (enabled && initialUrl && payloadUrl && initialUrl.href !== payloadUrl.href) {
|
|
2713
|
+
if (enabled && initialUrl && payloadUrl && initialUrl.href !== payloadUrl.href && initialUrlWasAbsolute !== null) {
|
|
2702
2714
|
router.replace({
|
|
2703
|
-
url: payloadUrl
|
|
2715
|
+
url: urlToString(payloadUrl, initialUrlWasAbsolute),
|
|
2704
2716
|
preserveScroll: true,
|
|
2705
2717
|
preserveState: true
|
|
2706
2718
|
});
|
|
2707
2719
|
}
|
|
2708
|
-
initialUrl = payloadUrl = null;
|
|
2720
|
+
initialUrl = payloadUrl = initialUrlWasAbsolute = null;
|
|
2709
2721
|
});
|
|
2710
2722
|
};
|
|
2711
2723
|
const onItemIntersected = debounce((itemElement) => {
|
|
@@ -3394,6 +3406,8 @@ export {
|
|
|
3394
3406
|
setupProgress,
|
|
3395
3407
|
shouldIntercept,
|
|
3396
3408
|
shouldNavigate,
|
|
3409
|
+
urlHasProtocol,
|
|
3410
|
+
urlToString,
|
|
3397
3411
|
urlWithoutHash,
|
|
3398
3412
|
useInfiniteScroll
|
|
3399
3413
|
};
|