mirror of
https://git.rezel.net/LudoTech/traque.git
synced 2026-02-09 10:20:16 +01:00
36 lines
894 B
JavaScript
36 lines
894 B
JavaScript
import { useEffect, useState } from "react";
|
|
|
|
export function useMapCircleDraw(area, setArea) {
|
|
const [drawing, setDrawing] = useState(false);
|
|
const [center, setCenter] = useState(area?.center || null);
|
|
const [radius, setRadius] = useState(area?.radius || null);
|
|
|
|
useEffect(() => {
|
|
setDrawing(false);
|
|
setCenter(area?.center || null);
|
|
setRadius(area?.radius || null);
|
|
}, [area])
|
|
|
|
function handleClick(e) {
|
|
if(!drawing) {
|
|
setCenter(e.latlng);
|
|
setRadius(null);
|
|
setDrawing(true);
|
|
} else {
|
|
setDrawing(false);
|
|
setArea({center, radius});
|
|
}
|
|
}
|
|
|
|
function handleMouseMove(e) {
|
|
if(drawing) {
|
|
setRadius(e.latlng.distanceTo(center));
|
|
}
|
|
}
|
|
return {
|
|
handleClick,
|
|
handleMouseMove,
|
|
center,
|
|
radius,
|
|
}
|
|
} |