fix(BOOK-405): Pushing to history when opening sidepeek to avoid navigating back inside the booking flow

Approved-by: Chuma Mcphoy (We Ahead)
This commit is contained in:
Erik Tiekstra
2025-10-09 11:34:58 +00:00
parent 566dd54087
commit 527ab170b5
15 changed files with 674 additions and 584 deletions

View File

@@ -0,0 +1,32 @@
"use client"
import { useEffect, useRef } from "react"
const callbacks = new Set<() => void>()
if (typeof window !== "undefined") {
window.addEventListener("popstate", () => {
callbacks.forEach((callback) => callback())
})
}
export default function usePopStateHandler(
callback: () => void,
enabled = true
) {
const callbackRef = useRef(callback)
callbackRef.current = callback
useEffect(() => {
if (!enabled) {
return
}
const handler = () => callbackRef.current()
callbacks.add(handler)
return () => {
callbacks.delete(handler)
}
}, [enabled])
}