diff --git a/components/ContentType/HotelPage/Map/MobileMapToggle/index.tsx b/components/ContentType/HotelPage/Map/MobileMapToggle/index.tsx index a04082702..fcb0dee1a 100644 --- a/components/ContentType/HotelPage/Map/MobileMapToggle/index.tsx +++ b/components/ContentType/HotelPage/Map/MobileMapToggle/index.tsx @@ -1,5 +1,6 @@ "use client" +import { useCallback, useEffect, useRef, useState } from "react" import { useIntl } from "react-intl" import useHotelPageStore from "@/stores/hotel-page" @@ -13,15 +14,45 @@ export default function MobileMapToggle() { const { isDynamicMapOpen, openDynamicMap, closeDynamicMap } = useHotelPageStore() + const mapToggleRef = useRef(null) + const [isVisible, setIsVisible] = useState(true) + + const handleScroll = useCallback(() => { + if (mapToggleRef.current) { + const rect = mapToggleRef.current.getBoundingClientRect() + if (rect.top >= 150) { + setIsVisible(true) + } else { + setIsVisible(false) + } + } + }, []) + + useEffect(() => { + handleScroll() + + window.addEventListener("scroll", handleScroll) + + return () => { + window.removeEventListener("scroll", handleScroll) + } + }, [handleScroll]) + return ( -
+