diff --git a/traque-front/app/admin/layout.js b/traque-front/app/admin/layout.js
index 9ff7fa6..c75d592 100644
--- a/traque-front/app/admin/layout.js
+++ b/traque-front/app/admin/layout.js
@@ -11,6 +11,7 @@ export default function AdminLayout({ children}) {
diff --git a/traque-front/app/admin/map/page.js b/traque-front/app/admin/map/page.js
new file mode 100644
index 0000000..8dfecf8
--- /dev/null
+++ b/traque-front/app/admin/map/page.js
@@ -0,0 +1,9 @@
+"use client";
+import dynamic from 'next/dynamic';
+
+const LiveMap = dynamic(() => import('@/components/admin/maps').then((mod) => mod.LiveMap), {
+ ssr: false
+});
+export default function LiveMapPage() {
+ return
+}
\ No newline at end of file
diff --git a/traque-front/app/admin/page.js b/traque-front/app/admin/page.js
index af4a7d7..6e0ff72 100644
--- a/traque-front/app/admin/page.js
+++ b/traque-front/app/admin/page.js
@@ -11,7 +11,7 @@ import dynamic from "next/dynamic";
const ZoneSelector = dynamic(() => import('@/components/admin/zoneSelector').then((mod) => mod.ZoneSelector), {
ssr: false
});
-const LiveMap = dynamic(() => import('@/components/admin/mapPicker').then((mod) => mod.LiveMap), {
+const ZoneEditor = dynamic(() => import('@/components/admin/maps').then((mod) => mod.ZoneEditor), {
ssr: false
});
export default function AdminPage() {
@@ -36,7 +36,7 @@ export default function AdminPage() {
{(gameState == GameState.SETUP || gameState == GameState.PLACEMENT) &&
}
{(gameState == GameState.SETUP || gameState == GameState.PLACEMENT) &&
}
{gameState == GameState.PLAYING &&
-
+
}
)
diff --git a/traque-front/components/admin/mapPicker.jsx b/traque-front/components/admin/mapPicker.jsx
deleted file mode 100644
index e511c3b..0000000
--- a/traque-front/components/admin/mapPicker.jsx
+++ /dev/null
@@ -1,125 +0,0 @@
-"use client";
-import { useLocation } from "@/hook/useLocation";
-import { useEffect, useState } from "react";
-import "leaflet/dist/leaflet.css";
-import { Circle, MapContainer, Marker, Popup, TileLayer, useMap } from "react-leaflet";
-import { useMapCircleDraw } from "@/hook/mapDrawing";
-import useAdmin from "@/hook/useAdmin";
-
-function MapPan(props) {
- const map = useMap();
- const [initialized, setInitialized] = useState(false);
-
- useEffect(() => {
- if (!initialized && props.center) {
- map.flyTo(props.center, props.zoom, { animate: false });
- setInitialized(true)
- }
- }, [props.center]);
- return null;
-}
-
-function MapEventListener({ onClick, onMouseMove }) {
- const map = useMap();
- useEffect(() => {
- map.on('click', onClick);
- return () => {
- map.off('click', onClick);
- }
- }, [onClick]);
- useEffect(() => {
- map.on('mousemove', onMouseMove);
- return () => {
- map.off('mousemove', onMouseMove);
- }
- });
- return null;
-}
-
-const DEFAULT_ZOOM = 17;
-export function CircularAreaPicker({ area, setArea, markerPosition, ...props }) {
- const location = useLocation(Infinity);
- const { handleClick, handleMouseMove, center, radius } = useMapCircleDraw(area, setArea);
- return (
-
Edit zones
- {editMode == EditMode.MIN &&
setEditMode(EditMode.MAX)}>Edit end zone}
- {editMode == EditMode.MAX &&
setEditMode(EditMode.MIN)}>Edit start zone}
-
+
-
-
Number of reductions
-
setReductionCount(e.target.value)}>
-
-
-
Duration of each reduction
-
setReductionDuration(e.target.value)}>
-
-
-
Interval between reductions
-
setReductionInterval(e.target.value)}>
-
-
Apply
}
\ No newline at end of file
diff --git a/traque-front/components/team/actionDrawer.jsx b/traque-front/components/team/actionDrawer.jsx
index 0828c00..6354139 100644
--- a/traque-front/components/team/actionDrawer.jsx
+++ b/traque-front/components/team/actionDrawer.jsx
@@ -16,7 +16,6 @@ export default function ActionDrawer() {
useEffect(() => {
const interval = setInterval(() => {
- console.log(locationSendDeadline)
const timeLeft = locationSendDeadline - Date.now();
setTimeLeftBeforePenalty(Math.floor(timeLeft / 1000 / 60));
}, 1000);
diff --git a/traque-front/components/team/map.jsx b/traque-front/components/team/map.jsx
index e5b505e..b6a11a8 100644
--- a/traque-front/components/team/map.jsx
+++ b/traque-front/components/team/map.jsx
@@ -1,11 +1,13 @@
'use client';
import React, { useEffect, useState } from 'react'
-import { Circle, MapContainer, Marker, Popup, TileLayer, useMap } from 'react-leaflet'
+import { Circle, LayerGroup, LayersControl, MapContainer, Marker, Popup, TileLayer, useMap } from 'react-leaflet'
import 'leaflet-defaulticon-compatibility/dist/leaflet-defaulticon-compatibility.css'
import "leaflet-defaulticon-compatibility";
import "leaflet/dist/leaflet.css";
import useGame from '@/hook/useGame';
import { useTeamContext } from '@/context/teamContext';
+import { useTilesColor } from '@/hook/mapDrawing';
+import { MapGridZoneSelector } from '../admin/mapZoneSelector';
const DEFAULT_ZOOM = 17;
@@ -25,27 +27,11 @@ function MapPan(props) {
return null;
}
-function LiveZone() {
- const { zone } = useTeamContext();
- console.log('Zone', zone);
- return zone &&