diff --git a/frontend/src/pages/TourNavigationPage.tsx b/frontend/src/pages/TourNavigationPage.tsx index 9cda0dd..91568ce 100644 --- a/frontend/src/pages/TourNavigationPage.tsx +++ b/frontend/src/pages/TourNavigationPage.tsx @@ -77,16 +77,42 @@ const MapRefSetter = ({ mapRef }: { mapRef: React.MutableRefObject return null; }; +const MapSizeHandler = () => { + const map = useMap(); + useEffect(() => { + const timer = setTimeout(() => { + map.invalidateSize(); + }, 0); + return () => clearTimeout(timer); + }, [map]); + return null; +}; + export const TourNavigationPage: React.FC = ({ tourId, routeData, onBack }) => { const [isCompassActive, setIsCompassActive] = useState(false); const [currentHeading, setCurrentHeading] = useState(0); const [routeGeometry, setRouteGeometry] = useState<[number, number][] | null>(null); const [error, setError] = useState(null); + const [viewportHeight, setViewportHeight] = useState(() => { + return Math.max(document.documentElement.clientHeight, window.innerHeight || 0); + }); const mapRef = useRef(null); const watchIdRef = useRef(null); const fetchLockRef = useRef(false); + useEffect(() => { + const handleResize = () => { + setViewportHeight(Math.max(document.documentElement.clientHeight, window.innerHeight || 0)); + }; + window.addEventListener('resize', handleResize); + window.addEventListener('orientationchange', handleResize); + return () => { + window.removeEventListener('resize', handleResize); + window.removeEventListener('orientationchange', handleResize); + }; + }, []); + const originLat = routeData?.origin?.lat; const originLng = routeData?.origin?.lng; const destLat = routeData?.destination?.lat; @@ -200,8 +226,8 @@ export const TourNavigationPage: React.FC = ({ tourId, : [0, 0]; return ( -
-
+
+
-
+
+ {routeData.origin && (