Dev Build / cleanup (push) Canceled after 0s
Dev Build / typecheck (push) Canceled after 0s
Dev Build / build (linux-arm64, ubuntu-24.04-arm, linux-arm64) (push) Canceled after 0s
Dev Build / build (linux-x64, ubuntu-latest, linux-x64) (push) Canceled after 0s
Dev Build / build (win-x64, windows-latest, win32-x64) (push) Canceled after 0s
Dev Build / dispatch-dev-docker (push) Canceled after 0s
22 lines
696 B
Plaintext
22 lines
696 B
Plaintext
import type { AnyRouter } from './router'
|
|
|
|
/**
|
|
* @private
|
|
* Handles hash-based scrolling after navigation completes.
|
|
* To be used in framework-specific <Transitioner> components during the onResolved event.
|
|
*/
|
|
export function handleHashScroll(router: AnyRouter) {
|
|
if (typeof document !== 'undefined' && (document as any).querySelector) {
|
|
const location = router.stores.location.get()
|
|
const hashScrollIntoViewOptions =
|
|
location.state.__hashScrollIntoViewOptions ?? true
|
|
|
|
if (hashScrollIntoViewOptions && location.hash !== '') {
|
|
const el = document.getElementById(location.hash)
|
|
if (el) {
|
|
el.scrollIntoView(hashScrollIntoViewOptions)
|
|
}
|
|
}
|
|
}
|
|
}
|