You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP →

next-restore-scroll-position

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

next-restore-scroll-position - npm Package Compare versions

Comparing version

to
1.0.2

{
"name": "next-restore-scroll-position",
"version": "1.0.1",
"version": "1.0.2",
"description": "",

@@ -52,5 +52,4 @@ "main": "index.js",

"peerDependencies": {
"react": "^16 || ^17 || ^18",
"next": "^13"
"react": "^16 || ^17 || ^18"
}
}

@@ -1,6 +0,14 @@

import Router, { NextRouter } from 'next/router'
import { useEffect, useRef } from 'react'
import { deleteScrollPos, restoreScrollPos, saveScrollPos } from './storage'
export function useScrollRestoration(router: NextRouter, { enabled = true }: { enabled?: boolean } = {}) {
interface Router {
asPath: string
events: {
on: (event: string, callback: (data: any) => void) => void
off: (event: string, callback: (data: any) => void) => void
}
beforePopState: (callback: () => boolean) => void
}
export function useScrollRestoration(router: Router, { enabled = true }: { enabled?: boolean } = {}) {
const shouldRestoreRef = useRef(false)

@@ -36,5 +44,5 @@

window.addEventListener('beforeunload', onBeforeUnload)
Router.events.on('routeChangeStart', onRouteChangeStart)
Router.events.on('routeChangeComplete', onRouteChangeComplete)
Router.beforePopState(() => {
router.events.on('routeChangeStart', onRouteChangeStart)
router.events.on('routeChangeComplete', onRouteChangeComplete)
router.beforePopState(() => {
shouldRestoreRef.current = true

@@ -46,7 +54,7 @@ return true

window.removeEventListener('beforeunload', onBeforeUnload)
Router.events.off('routeChangeStart', onRouteChangeStart)
Router.events.off('routeChangeComplete', onRouteChangeComplete)
Router.beforePopState(() => true)
router.events.off('routeChangeStart', onRouteChangeStart)
router.events.off('routeChangeComplete', onRouteChangeComplete)
router.beforePopState(() => true)
}
}, [router, enabled])
}