import React, { useEffect, useRef, useState } from "react"; import { AsileIcon, CommentIcon, CursorIcon, FloorIcon, FreeMoveIcon, PenIcon, PlayIcon, SaveTemplateIcon, WallIcon, ZoneIcon, } from "../icons/ExportToolsIcons"; import { ArrowIcon, TickIcon } from "../icons/ExportCommonIcons"; import useModuleStore from "../../store/useModuleStore"; const Tools: React.FC = () => { const [activeTool, setActiveTool] = useState("cursor"); const [activeSubTool, setActiveSubTool] = useState("cursor"); const [toggleThreeD, setToggleThreeD] = useState(true); const dropdownRef = useRef(null); const [openDrop, setOpenDrop] = useState(false); const { activeModule } = useModuleStore(); // Reset activeTool whenever activeModule changes useEffect(() => { setActiveTool(activeSubTool); setActiveSubTool(activeSubTool); }, [activeModule]); useEffect(() => { const handleOutsideClick = (event: MouseEvent) => { if ( dropdownRef.current && !dropdownRef.current.contains(event.target as Node) ) { setOpenDrop(false); // Close the dropdown } }; document.addEventListener("mousedown", handleOutsideClick); return () => { document.removeEventListener("mousedown", handleOutsideClick); }; }, []); return (
{activeSubTool == "cursor" && (
{ setActiveTool("cursor"); }} >
)} {activeSubTool == "free-hand" && (
{ setActiveTool("free-hand"); }} >
)} {activeModule !== "visualization" && (
{ setOpenDrop(!openDrop); console.log(openDrop); }} > {openDrop && (
{ setOpenDrop(false); setActiveTool("cursor"); setActiveSubTool("cursor"); }} >
{activeSubTool === "cursor" && }
Cursor
{ setOpenDrop(false); setActiveTool("free-hand"); setActiveSubTool("free-hand"); }} >
{activeSubTool === "free-hand" && }
Free Hand
)}
)}
{!toggleThreeD && activeModule === "builder" && ( <>
{ setActiveTool("draw-wall"); }} >
{ setActiveTool("draw-zone"); }} >
{ setActiveTool("draw-aisle"); }} >
{ setActiveTool("draw-floor"); }} >
)} {activeModule === "simulation" && ( <>
{ setActiveTool("pen"); }} >
)} {activeModule === "visualization" && ( <>
)}
{ setActiveTool("comment"); }} >
{ setActiveTool("play"); }} >
{ setToggleThreeD(!toggleThreeD); }} >
2d
3d
); }; export default Tools;