@moku-labs/web 2.4.0 → 2.4.2
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/browser.mjs +41 -9
- package/dist/index.cjs +41 -9
- package/dist/index.mjs +41 -9
- package/package.json +1 -1
package/dist/browser.mjs
CHANGED
|
@@ -3645,11 +3645,13 @@ function attachHistoryFallback(handlers, navigate = (pathname, _scrollToTop, sig
|
|
|
3645
3645
|
* @param navigation - The Navigation API object to attach the listener to.
|
|
3646
3646
|
* @param handlers - The navigation lifecycle callbacks.
|
|
3647
3647
|
* @param navigate - The navigation strategy (defaults to HTML-over-fetch via `performNavigation`).
|
|
3648
|
+
* @param isOwnPush - True while the kernel's programmatic navigation runs its own
|
|
3649
|
+
* `history.pushState`: the `navigate` event it fires is left alone, the kernel runs it once.
|
|
3648
3650
|
* @returns A teardown that removes the `navigate` listener.
|
|
3649
3651
|
* @example
|
|
3650
3652
|
* const dispose = attachNavigationApi(navigation, handlers);
|
|
3651
3653
|
*/
|
|
3652
|
-
function attachNavigationApi(navigation, handlers, navigate = (pathname, _scrollToTop, signal) => performNavigation(pathname, handlers, signal)) {
|
|
3654
|
+
function attachNavigationApi(navigation, handlers, navigate = (pathname, _scrollToTop, signal) => performNavigation(pathname, handlers, signal), isOwnPush = () => false) {
|
|
3653
3655
|
/**
|
|
3654
3656
|
* Handle a `navigate` event: classify, then intercept with fetch-and-swap.
|
|
3655
3657
|
*
|
|
@@ -3658,6 +3660,7 @@ function attachNavigationApi(navigation, handlers, navigate = (pathname, _scroll
|
|
|
3658
3660
|
* navigation.addEventListener("navigate", onNavigate);
|
|
3659
3661
|
*/
|
|
3660
3662
|
const onNavigate = (navEvent) => {
|
|
3663
|
+
if (isOwnPush()) return;
|
|
3661
3664
|
const url = new URL(navEvent.destination.url);
|
|
3662
3665
|
if (!navEvent.canIntercept || navEvent.hashChange || navEvent.downloadRequest) return;
|
|
3663
3666
|
if (!isInternalLink(url)) return;
|
|
@@ -3690,13 +3693,15 @@ function attachNavigationApi(navigation, handlers, navigate = (pathname, _scroll
|
|
|
3690
3693
|
*
|
|
3691
3694
|
* @param handlers - The navigation lifecycle callbacks the kernel supplies.
|
|
3692
3695
|
* @param navigate - The navigation strategy (defaults to HTML-over-fetch via `performNavigation`).
|
|
3696
|
+
* @param isOwnPush - True while the kernel runs its own `history.pushState` (Navigation API path
|
|
3697
|
+
* only; the History fallback never sees an event for it).
|
|
3693
3698
|
* @returns A teardown removing all attached listeners.
|
|
3694
3699
|
* @example
|
|
3695
|
-
* const dispose = attachRouter(handlers, navigate);
|
|
3700
|
+
* const dispose = attachRouter(handlers, navigate, () => pushingOwnUrl);
|
|
3696
3701
|
*/
|
|
3697
|
-
function attachRouter(handlers, navigate) {
|
|
3702
|
+
function attachRouter(handlers, navigate, isOwnPush) {
|
|
3698
3703
|
const navigation = getNavigation();
|
|
3699
|
-
return navigation ? attachNavigationApi(navigation, handlers, navigate) : attachHistoryFallback(handlers, navigate);
|
|
3704
|
+
return navigation ? attachNavigationApi(navigation, handlers, navigate, isOwnPush) : attachHistoryFallback(handlers, navigate);
|
|
3700
3705
|
}
|
|
3701
3706
|
//#endregion
|
|
3702
3707
|
//#region src/plugins/spa/state.ts
|
|
@@ -3861,6 +3866,18 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
3861
3866
|
let progress;
|
|
3862
3867
|
let pendingScrollToTop = true;
|
|
3863
3868
|
let pendingTransition = resolveTransition(resolved.defaultTransition);
|
|
3869
|
+
let pushingOwnUrl = false;
|
|
3870
|
+
let programmatic;
|
|
3871
|
+
/**
|
|
3872
|
+
* Aborts the programmatic navigation still loading, if any.
|
|
3873
|
+
*
|
|
3874
|
+
* @example
|
|
3875
|
+
* supersedeProgrammatic(); // a link click or back/forward starts
|
|
3876
|
+
*/
|
|
3877
|
+
const supersedeProgrammatic = () => {
|
|
3878
|
+
programmatic?.abort();
|
|
3879
|
+
programmatic = void 0;
|
|
3880
|
+
};
|
|
3864
3881
|
/**
|
|
3865
3882
|
* Resolve a {@link TransitionMode} into the runtime {@link SwapTransition} the swap
|
|
3866
3883
|
* consumes: `"none"` ⇒ disabled; `"crossfade"` ⇒ enabled, no named types (default root
|
|
@@ -4173,8 +4190,10 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
4173
4190
|
* Navigation API commits the address bar before the interceptor calls {@link navigate}; a
|
|
4174
4191
|
* programmatic call does NOT, so it must commit the URL itself first — otherwise the content
|
|
4175
4192
|
* swaps but the address bar (and the back button / refresh / deep link) stays on the old URL.
|
|
4176
|
-
* `history.pushState`
|
|
4177
|
-
*
|
|
4193
|
+
* Where the Navigation API exists, `history.pushState` fires a `navigate` event synchronously
|
|
4194
|
+
* (Chrome, Edge, Safari 26): `pushingOwnUrl` marks it, so the interceptor does not run this
|
|
4195
|
+
* navigation a second time. The current scroll is saved first so a later back restores it. It
|
|
4196
|
+
* carries its own abort signal: any later navigation aborts it before it can swap.
|
|
4178
4197
|
*
|
|
4179
4198
|
* @param path - The destination path (pathname + optional search).
|
|
4180
4199
|
* @param scroll - The optional per-call scroll override.
|
|
@@ -4185,9 +4204,19 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
4185
4204
|
if (typeof document === "undefined") return;
|
|
4186
4205
|
if (path !== currentLocationUrl()) {
|
|
4187
4206
|
saveScrollPosition(currentLocationUrl());
|
|
4188
|
-
|
|
4207
|
+
pushingOwnUrl = true;
|
|
4208
|
+
try {
|
|
4209
|
+
history.pushState({}, "", path);
|
|
4210
|
+
} finally {
|
|
4211
|
+
pushingOwnUrl = false;
|
|
4212
|
+
}
|
|
4189
4213
|
}
|
|
4190
|
-
|
|
4214
|
+
supersedeProgrammatic();
|
|
4215
|
+
const controller = new AbortController();
|
|
4216
|
+
programmatic = controller;
|
|
4217
|
+
navigate(path, true, controller.signal, scroll).catch(() => {}).finally(() => {
|
|
4218
|
+
if (programmatic === controller) programmatic = void 0;
|
|
4219
|
+
});
|
|
4191
4220
|
};
|
|
4192
4221
|
return {
|
|
4193
4222
|
/**
|
|
@@ -4214,7 +4243,10 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
4214
4243
|
if (state.started) throw new Error(`${ERROR_PREFIX} spa kernel already started.\n Call app.stop() before booting again (single boot per app).`);
|
|
4215
4244
|
progress = createProgressBar(resolved.progressBar);
|
|
4216
4245
|
state.currentUrl = currentLocationUrl();
|
|
4217
|
-
state.destroyRouter = attachRouter(handlers,
|
|
4246
|
+
state.destroyRouter = attachRouter(handlers, (pathname, scrollToTop, signal, scrollOverride) => {
|
|
4247
|
+
supersedeProgrammatic();
|
|
4248
|
+
return navigate(pathname, scrollToTop, signal, scrollOverride);
|
|
4249
|
+
}, () => pushingOwnUrl);
|
|
4218
4250
|
const matchPath = state.currentUrl.split("?")[0] ?? state.currentUrl;
|
|
4219
4251
|
const hit = deps.router.match(matchPath);
|
|
4220
4252
|
if (hit?.route._handlers.render && isClientOnlyRoute(deps.router.mode(), hit.route)) bootRender(state.currentUrl);
|
package/dist/index.cjs
CHANGED
|
@@ -10739,11 +10739,13 @@ function attachHistoryFallback(handlers, navigate = (pathname, _scrollToTop, sig
|
|
|
10739
10739
|
* @param navigation - The Navigation API object to attach the listener to.
|
|
10740
10740
|
* @param handlers - The navigation lifecycle callbacks.
|
|
10741
10741
|
* @param navigate - The navigation strategy (defaults to HTML-over-fetch via `performNavigation`).
|
|
10742
|
+
* @param isOwnPush - True while the kernel's programmatic navigation runs its own
|
|
10743
|
+
* `history.pushState`: the `navigate` event it fires is left alone, the kernel runs it once.
|
|
10742
10744
|
* @returns A teardown that removes the `navigate` listener.
|
|
10743
10745
|
* @example
|
|
10744
10746
|
* const dispose = attachNavigationApi(navigation, handlers);
|
|
10745
10747
|
*/
|
|
10746
|
-
function attachNavigationApi(navigation, handlers, navigate = (pathname, _scrollToTop, signal) => performNavigation(pathname, handlers, signal)) {
|
|
10748
|
+
function attachNavigationApi(navigation, handlers, navigate = (pathname, _scrollToTop, signal) => performNavigation(pathname, handlers, signal), isOwnPush = () => false) {
|
|
10747
10749
|
/**
|
|
10748
10750
|
* Handle a `navigate` event: classify, then intercept with fetch-and-swap.
|
|
10749
10751
|
*
|
|
@@ -10752,6 +10754,7 @@ function attachNavigationApi(navigation, handlers, navigate = (pathname, _scroll
|
|
|
10752
10754
|
* navigation.addEventListener("navigate", onNavigate);
|
|
10753
10755
|
*/
|
|
10754
10756
|
const onNavigate = (navEvent) => {
|
|
10757
|
+
if (isOwnPush()) return;
|
|
10755
10758
|
const url = new URL(navEvent.destination.url);
|
|
10756
10759
|
if (!navEvent.canIntercept || navEvent.hashChange || navEvent.downloadRequest) return;
|
|
10757
10760
|
if (!isInternalLink(url)) return;
|
|
@@ -10784,13 +10787,15 @@ function attachNavigationApi(navigation, handlers, navigate = (pathname, _scroll
|
|
|
10784
10787
|
*
|
|
10785
10788
|
* @param handlers - The navigation lifecycle callbacks the kernel supplies.
|
|
10786
10789
|
* @param navigate - The navigation strategy (defaults to HTML-over-fetch via `performNavigation`).
|
|
10790
|
+
* @param isOwnPush - True while the kernel runs its own `history.pushState` (Navigation API path
|
|
10791
|
+
* only; the History fallback never sees an event for it).
|
|
10787
10792
|
* @returns A teardown removing all attached listeners.
|
|
10788
10793
|
* @example
|
|
10789
|
-
* const dispose = attachRouter(handlers, navigate);
|
|
10794
|
+
* const dispose = attachRouter(handlers, navigate, () => pushingOwnUrl);
|
|
10790
10795
|
*/
|
|
10791
|
-
function attachRouter(handlers, navigate) {
|
|
10796
|
+
function attachRouter(handlers, navigate, isOwnPush) {
|
|
10792
10797
|
const navigation = getNavigation();
|
|
10793
|
-
return navigation ? attachNavigationApi(navigation, handlers, navigate) : attachHistoryFallback(handlers, navigate);
|
|
10798
|
+
return navigation ? attachNavigationApi(navigation, handlers, navigate, isOwnPush) : attachHistoryFallback(handlers, navigate);
|
|
10794
10799
|
}
|
|
10795
10800
|
//#endregion
|
|
10796
10801
|
//#region src/plugins/spa/state.ts
|
|
@@ -10955,6 +10960,18 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
10955
10960
|
let progress;
|
|
10956
10961
|
let pendingScrollToTop = true;
|
|
10957
10962
|
let pendingTransition = resolveTransition(resolved.defaultTransition);
|
|
10963
|
+
let pushingOwnUrl = false;
|
|
10964
|
+
let programmatic;
|
|
10965
|
+
/**
|
|
10966
|
+
* Aborts the programmatic navigation still loading, if any.
|
|
10967
|
+
*
|
|
10968
|
+
* @example
|
|
10969
|
+
* supersedeProgrammatic(); // a link click or back/forward starts
|
|
10970
|
+
*/
|
|
10971
|
+
const supersedeProgrammatic = () => {
|
|
10972
|
+
programmatic?.abort();
|
|
10973
|
+
programmatic = void 0;
|
|
10974
|
+
};
|
|
10958
10975
|
/**
|
|
10959
10976
|
* Resolve a {@link TransitionMode} into the runtime {@link SwapTransition} the swap
|
|
10960
10977
|
* consumes: `"none"` ⇒ disabled; `"crossfade"` ⇒ enabled, no named types (default root
|
|
@@ -11267,8 +11284,10 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
11267
11284
|
* Navigation API commits the address bar before the interceptor calls {@link navigate}; a
|
|
11268
11285
|
* programmatic call does NOT, so it must commit the URL itself first — otherwise the content
|
|
11269
11286
|
* swaps but the address bar (and the back button / refresh / deep link) stays on the old URL.
|
|
11270
|
-
* `history.pushState`
|
|
11271
|
-
*
|
|
11287
|
+
* Where the Navigation API exists, `history.pushState` fires a `navigate` event synchronously
|
|
11288
|
+
* (Chrome, Edge, Safari 26): `pushingOwnUrl` marks it, so the interceptor does not run this
|
|
11289
|
+
* navigation a second time. The current scroll is saved first so a later back restores it. It
|
|
11290
|
+
* carries its own abort signal: any later navigation aborts it before it can swap.
|
|
11272
11291
|
*
|
|
11273
11292
|
* @param path - The destination path (pathname + optional search).
|
|
11274
11293
|
* @param scroll - The optional per-call scroll override.
|
|
@@ -11279,9 +11298,19 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
11279
11298
|
if (typeof document === "undefined") return;
|
|
11280
11299
|
if (path !== currentLocationUrl()) {
|
|
11281
11300
|
saveScrollPosition(currentLocationUrl());
|
|
11282
|
-
|
|
11301
|
+
pushingOwnUrl = true;
|
|
11302
|
+
try {
|
|
11303
|
+
history.pushState({}, "", path);
|
|
11304
|
+
} finally {
|
|
11305
|
+
pushingOwnUrl = false;
|
|
11306
|
+
}
|
|
11283
11307
|
}
|
|
11284
|
-
|
|
11308
|
+
supersedeProgrammatic();
|
|
11309
|
+
const controller = new AbortController();
|
|
11310
|
+
programmatic = controller;
|
|
11311
|
+
navigate(path, true, controller.signal, scroll).catch(() => {}).finally(() => {
|
|
11312
|
+
if (programmatic === controller) programmatic = void 0;
|
|
11313
|
+
});
|
|
11285
11314
|
};
|
|
11286
11315
|
return {
|
|
11287
11316
|
/**
|
|
@@ -11308,7 +11337,10 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
11308
11337
|
if (state.started) throw new Error(`${ERROR_PREFIX} spa kernel already started.\n Call app.stop() before booting again (single boot per app).`);
|
|
11309
11338
|
progress = createProgressBar(resolved.progressBar);
|
|
11310
11339
|
state.currentUrl = currentLocationUrl();
|
|
11311
|
-
state.destroyRouter = attachRouter(handlers,
|
|
11340
|
+
state.destroyRouter = attachRouter(handlers, (pathname, scrollToTop, signal, scrollOverride) => {
|
|
11341
|
+
supersedeProgrammatic();
|
|
11342
|
+
return navigate(pathname, scrollToTop, signal, scrollOverride);
|
|
11343
|
+
}, () => pushingOwnUrl);
|
|
11312
11344
|
const matchPath = state.currentUrl.split("?")[0] ?? state.currentUrl;
|
|
11313
11345
|
const hit = deps.router.match(matchPath);
|
|
11314
11346
|
if (hit?.route._handlers.render && isClientOnlyRoute(deps.router.mode(), hit.route)) bootRender(state.currentUrl);
|
package/dist/index.mjs
CHANGED
|
@@ -10695,11 +10695,13 @@ function attachHistoryFallback(handlers, navigate = (pathname, _scrollToTop, sig
|
|
|
10695
10695
|
* @param navigation - The Navigation API object to attach the listener to.
|
|
10696
10696
|
* @param handlers - The navigation lifecycle callbacks.
|
|
10697
10697
|
* @param navigate - The navigation strategy (defaults to HTML-over-fetch via `performNavigation`).
|
|
10698
|
+
* @param isOwnPush - True while the kernel's programmatic navigation runs its own
|
|
10699
|
+
* `history.pushState`: the `navigate` event it fires is left alone, the kernel runs it once.
|
|
10698
10700
|
* @returns A teardown that removes the `navigate` listener.
|
|
10699
10701
|
* @example
|
|
10700
10702
|
* const dispose = attachNavigationApi(navigation, handlers);
|
|
10701
10703
|
*/
|
|
10702
|
-
function attachNavigationApi(navigation, handlers, navigate = (pathname, _scrollToTop, signal) => performNavigation(pathname, handlers, signal)) {
|
|
10704
|
+
function attachNavigationApi(navigation, handlers, navigate = (pathname, _scrollToTop, signal) => performNavigation(pathname, handlers, signal), isOwnPush = () => false) {
|
|
10703
10705
|
/**
|
|
10704
10706
|
* Handle a `navigate` event: classify, then intercept with fetch-and-swap.
|
|
10705
10707
|
*
|
|
@@ -10708,6 +10710,7 @@ function attachNavigationApi(navigation, handlers, navigate = (pathname, _scroll
|
|
|
10708
10710
|
* navigation.addEventListener("navigate", onNavigate);
|
|
10709
10711
|
*/
|
|
10710
10712
|
const onNavigate = (navEvent) => {
|
|
10713
|
+
if (isOwnPush()) return;
|
|
10711
10714
|
const url = new URL(navEvent.destination.url);
|
|
10712
10715
|
if (!navEvent.canIntercept || navEvent.hashChange || navEvent.downloadRequest) return;
|
|
10713
10716
|
if (!isInternalLink(url)) return;
|
|
@@ -10740,13 +10743,15 @@ function attachNavigationApi(navigation, handlers, navigate = (pathname, _scroll
|
|
|
10740
10743
|
*
|
|
10741
10744
|
* @param handlers - The navigation lifecycle callbacks the kernel supplies.
|
|
10742
10745
|
* @param navigate - The navigation strategy (defaults to HTML-over-fetch via `performNavigation`).
|
|
10746
|
+
* @param isOwnPush - True while the kernel runs its own `history.pushState` (Navigation API path
|
|
10747
|
+
* only; the History fallback never sees an event for it).
|
|
10743
10748
|
* @returns A teardown removing all attached listeners.
|
|
10744
10749
|
* @example
|
|
10745
|
-
* const dispose = attachRouter(handlers, navigate);
|
|
10750
|
+
* const dispose = attachRouter(handlers, navigate, () => pushingOwnUrl);
|
|
10746
10751
|
*/
|
|
10747
|
-
function attachRouter(handlers, navigate) {
|
|
10752
|
+
function attachRouter(handlers, navigate, isOwnPush) {
|
|
10748
10753
|
const navigation = getNavigation();
|
|
10749
|
-
return navigation ? attachNavigationApi(navigation, handlers, navigate) : attachHistoryFallback(handlers, navigate);
|
|
10754
|
+
return navigation ? attachNavigationApi(navigation, handlers, navigate, isOwnPush) : attachHistoryFallback(handlers, navigate);
|
|
10750
10755
|
}
|
|
10751
10756
|
//#endregion
|
|
10752
10757
|
//#region src/plugins/spa/state.ts
|
|
@@ -10911,6 +10916,18 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
10911
10916
|
let progress;
|
|
10912
10917
|
let pendingScrollToTop = true;
|
|
10913
10918
|
let pendingTransition = resolveTransition(resolved.defaultTransition);
|
|
10919
|
+
let pushingOwnUrl = false;
|
|
10920
|
+
let programmatic;
|
|
10921
|
+
/**
|
|
10922
|
+
* Aborts the programmatic navigation still loading, if any.
|
|
10923
|
+
*
|
|
10924
|
+
* @example
|
|
10925
|
+
* supersedeProgrammatic(); // a link click or back/forward starts
|
|
10926
|
+
*/
|
|
10927
|
+
const supersedeProgrammatic = () => {
|
|
10928
|
+
programmatic?.abort();
|
|
10929
|
+
programmatic = void 0;
|
|
10930
|
+
};
|
|
10914
10931
|
/**
|
|
10915
10932
|
* Resolve a {@link TransitionMode} into the runtime {@link SwapTransition} the swap
|
|
10916
10933
|
* consumes: `"none"` ⇒ disabled; `"crossfade"` ⇒ enabled, no named types (default root
|
|
@@ -11223,8 +11240,10 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
11223
11240
|
* Navigation API commits the address bar before the interceptor calls {@link navigate}; a
|
|
11224
11241
|
* programmatic call does NOT, so it must commit the URL itself first — otherwise the content
|
|
11225
11242
|
* swaps but the address bar (and the back button / refresh / deep link) stays on the old URL.
|
|
11226
|
-
* `history.pushState`
|
|
11227
|
-
*
|
|
11243
|
+
* Where the Navigation API exists, `history.pushState` fires a `navigate` event synchronously
|
|
11244
|
+
* (Chrome, Edge, Safari 26): `pushingOwnUrl` marks it, so the interceptor does not run this
|
|
11245
|
+
* navigation a second time. The current scroll is saved first so a later back restores it. It
|
|
11246
|
+
* carries its own abort signal: any later navigation aborts it before it can swap.
|
|
11228
11247
|
*
|
|
11229
11248
|
* @param path - The destination path (pathname + optional search).
|
|
11230
11249
|
* @param scroll - The optional per-call scroll override.
|
|
@@ -11235,9 +11254,19 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
11235
11254
|
if (typeof document === "undefined") return;
|
|
11236
11255
|
if (path !== currentLocationUrl()) {
|
|
11237
11256
|
saveScrollPosition(currentLocationUrl());
|
|
11238
|
-
|
|
11257
|
+
pushingOwnUrl = true;
|
|
11258
|
+
try {
|
|
11259
|
+
history.pushState({}, "", path);
|
|
11260
|
+
} finally {
|
|
11261
|
+
pushingOwnUrl = false;
|
|
11262
|
+
}
|
|
11239
11263
|
}
|
|
11240
|
-
|
|
11264
|
+
supersedeProgrammatic();
|
|
11265
|
+
const controller = new AbortController();
|
|
11266
|
+
programmatic = controller;
|
|
11267
|
+
navigate(path, true, controller.signal, scroll).catch(() => {}).finally(() => {
|
|
11268
|
+
if (programmatic === controller) programmatic = void 0;
|
|
11269
|
+
});
|
|
11241
11270
|
};
|
|
11242
11271
|
return {
|
|
11243
11272
|
/**
|
|
@@ -11264,7 +11293,10 @@ function createSpaKernel(state, config, emit, deps) {
|
|
|
11264
11293
|
if (state.started) throw new Error(`${ERROR_PREFIX} spa kernel already started.\n Call app.stop() before booting again (single boot per app).`);
|
|
11265
11294
|
progress = createProgressBar(resolved.progressBar);
|
|
11266
11295
|
state.currentUrl = currentLocationUrl();
|
|
11267
|
-
state.destroyRouter = attachRouter(handlers,
|
|
11296
|
+
state.destroyRouter = attachRouter(handlers, (pathname, scrollToTop, signal, scrollOverride) => {
|
|
11297
|
+
supersedeProgrammatic();
|
|
11298
|
+
return navigate(pathname, scrollToTop, signal, scrollOverride);
|
|
11299
|
+
}, () => pushingOwnUrl);
|
|
11268
11300
|
const matchPath = state.currentUrl.split("?")[0] ?? state.currentUrl;
|
|
11269
11301
|
const hit = deps.router.match(matchPath);
|
|
11270
11302
|
if (hit?.route._handlers.render && isClientOnlyRoute(deps.router.mode(), hit.route)) bootRender(state.currentUrl);
|
package/package.json
CHANGED