Merged in feat/SW-1554-sidepeek-tracking-hotel-pages (pull request #1460)

feat(SW-1554): Added tracking support for sidepeeks inside hotel pages

* feat(SW-1554): Added tracking support for sidepeeks inside hotel pages


Approved-by: Linus Flood
This commit is contained in:
Erik Tiekstra
2025-03-04 07:02:04 +00:00
parent b8ad88de1b
commit 1ec479e601
8 changed files with 46 additions and 26 deletions

View File

@@ -4,6 +4,10 @@ import { createContext, useEffect, useState } from "react"
import useHash from "@/hooks/useHash"
interface SidepeekProviderProps extends React.PropsWithChildren {
onOpen?: (sidePeek: string) => void
}
interface ISidePeekContext {
handleClose: (isOpen: boolean) => void
activeSidePeek: string | null
@@ -13,7 +17,8 @@ export const SidePeekContext = createContext<ISidePeekContext | null>(null)
export default function SidePeekProvider({
children,
}: React.PropsWithChildren) {
onOpen,
}: SidepeekProviderProps) {
const router = useRouter()
const hash = useHash()
const [activeSidePeek, setActiveSidePeek] = useState<string | null>(null)
@@ -26,6 +31,12 @@ export default function SidePeekProvider({
}
}, [hash, setActiveSidePeek])
useEffect(() => {
if (activeSidePeek && onOpen) {
onOpen(activeSidePeek)
}
}, [activeSidePeek, onOpen])
function handleClose(isOpen: boolean) {
if (!isOpen) {
router.push(window.location.pathname, { scroll: false })