import { Fragment, useEffect, useState } from "react"; import Image from 'next/image'; import { Arrow, CircleZone, PolygonZone, Position, Tag } from "@/components/layer"; import { CustomMapContainer, MapEventListener, MapPan } from "@/components/map"; import { Show } from "@/components/Show"; import { useAdmin } from "@/context/adminContext"; import { GameState } from "@/config/types"; import { mapZooms } from "@/config/configurations"; export default function LiveMap({ selectedTeamId, onSelected, isFocusing, setIsFocusing, mapStyle, showZones, showNames, showArrows }) { const { gameState, teams, zones, getTeam } = useAdmin(); const [timeLeftNextZone, setTimeLeftNextZone] = useState(null); const [isFullScreen, setIsFullScreen] = useState(false); useEffect(() => { if (zones?.zoneTransitionDate) { const updateTime = () => { setTimeLeftNextZone(Math.max(0, Math.floor((zones.zoneTransitionDate - Date.now()) / 1000))); }; updateTime(); const interval = setInterval(updateTime, 1000); return () => clearInterval(interval); } }, [zones?.zoneTransitionDate]); function formatTime(time) { // time is in seconds if (!time || time < 0) return "00:00"; const minutes = Math.floor(time / 60); const seconds = Math.floor(time % 60); return String(minutes).padStart(2,"0") + ":" + String(seconds).padStart(2,"0"); } return (
Durée zone
{formatTime(timeLeftNextZone)}