mirror of
https://github.com/supabase/supabase.git
synced 2026-05-09 02:09:50 -04:00
35 lines
902 B
TypeScript
35 lines
902 B
TypeScript
'use client'
|
|
|
|
import { usePathname } from 'next/navigation'
|
|
import { useEffect } from 'react'
|
|
import { DOCS_CONTENT_CONTAINER_ID } from './helpers.constants'
|
|
|
|
const useScrollTopOnPageChange = () => {
|
|
const pathname = usePathname()
|
|
|
|
useEffect(() => {
|
|
if (document && pathname) {
|
|
// Don't scroll on reference pages
|
|
if (pathname.startsWith('/reference/')) return
|
|
|
|
const container = document.getElementById(DOCS_CONTENT_CONTAINER_ID)
|
|
if (container) container.scrollTop = 0
|
|
/**
|
|
* a11y works by default, so no need to specially handle it
|
|
*/
|
|
}
|
|
}, [pathname])
|
|
}
|
|
|
|
/**
|
|
* Scroll the docs content container to top on page change. Can't use Next.js's
|
|
* native scroll restoration, because we scroll the content container, not the
|
|
* document.
|
|
*/
|
|
const ScrollRestoration = () => {
|
|
useScrollTopOnPageChange()
|
|
return null
|
|
}
|
|
|
|
export { ScrollRestoration }
|