mirror of
https://git.rezel.net/LudoTech/traque.git
synced 2026-02-09 18:20:17 +01:00
MVP systeme de zone quadrillage
This commit is contained in:
@@ -1,29 +1,15 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
import { useLeafletContext } from '@react-leaflet/core';
|
||||
import { useMapGrid } from '@/hook/mapDrawing';
|
||||
import { latLngToTileNumber } from '../util/map';
|
||||
import { TileNumber, latLngToTileNumber } from '../util/map';
|
||||
import { useMapEvent } from 'react-leaflet';
|
||||
|
||||
export function MapGridZoneSelector({ onSelectedTile, tileSize }) {
|
||||
const [coloredTiles, setColoredTiles] = useState([]);
|
||||
const { map } = useLeafletContext();
|
||||
|
||||
useEffect(() => {
|
||||
map.on('click', (e) => {
|
||||
export function MapGridZoneSelector({ tilesColor, onClickTile, tileSize }) {
|
||||
useMapEvent('click', (e) => {
|
||||
const fractionalTileNumber = latLngToTileNumber(e.latlng, tileSize);
|
||||
const tileNumber = new TileNumber(Math.floor(fractionalTileNumber.x), Math.floor(fractionalTileNumber.y));
|
||||
if (coloredTiles.some(t => t.equals(tileNumber))) {
|
||||
setColoredTiles(coloredTiles.filter(t => !t.equals(tileNumber)));
|
||||
} else {
|
||||
setColoredTiles([...coloredTiles, tileNumber]);
|
||||
}
|
||||
});
|
||||
onClickTile(tileNumber);
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
onSelectedTile(coloredTiles);
|
||||
}, [coloredTiles]);
|
||||
|
||||
useMapGrid(coloredTiles, tileSize);
|
||||
useMapGrid(tilesColor, tileSize);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user