update: transform tool ui added
This commit is contained in:
@@ -36,6 +36,7 @@ import {
|
||||
} from "../../store/visualization/useDroppedObjectsStore";
|
||||
import { useParams } from "react-router-dom";
|
||||
import { useVersionContext } from "../../modules/builder/version/versionContext";
|
||||
import { MoveIcon, RotateIcon } from "../icons/ShortcutIcons";
|
||||
|
||||
// Utility component
|
||||
const ToolButton = ({
|
||||
@@ -65,12 +66,8 @@ const Tools: React.FC = () => {
|
||||
const { isPlaying, setIsPlaying } = usePlayButtonStore();
|
||||
const { showShortcuts } = useShortcutStore();
|
||||
|
||||
const {
|
||||
activeTool,
|
||||
setActiveTool,
|
||||
setToolMode,
|
||||
setAddAction,
|
||||
} = useStoreHooks();
|
||||
const { activeTool, setActiveTool, setToolMode, setAddAction } =
|
||||
useStoreHooks();
|
||||
|
||||
const { setActiveSubTool, activeSubTool } = useActiveSubTool();
|
||||
const { setSelectedWallItem } = useSelectedWallItem();
|
||||
@@ -81,14 +78,15 @@ const Tools: React.FC = () => {
|
||||
const { selectedZone } = useSelectedZoneStore();
|
||||
const { floatingWidget } = useFloatingWidget();
|
||||
const { widgets3D } = use3DWidget();
|
||||
const { visualizationSocket } = useSocketStore();
|
||||
|
||||
const dropdownRef = useRef<HTMLButtonElement>(null);
|
||||
const [openDrop, setOpenDrop] = useState(false);
|
||||
const { visualizationSocket } = useSocketStore();
|
||||
const { selectedVersionStore } = useVersionContext();
|
||||
const { selectedVersion } = selectedVersionStore();
|
||||
const { projectId } = useParams();
|
||||
|
||||
const dropdownRef = useRef<HTMLButtonElement>(null);
|
||||
const [openDrop, setOpenDrop] = useState(false);
|
||||
|
||||
// 1. Set UI toggles on initial render
|
||||
useEffect(() => {
|
||||
setToggleUI(
|
||||
@@ -155,7 +153,7 @@ const Tools: React.FC = () => {
|
||||
if (!is2D) setAddAction("Pillar");
|
||||
break;
|
||||
case "delete":
|
||||
is2D ? setToolMode('2D-Delete') : setToolMode('3D-Delete');
|
||||
is2D ? setToolMode("2D-Delete") : setToolMode("3D-Delete");
|
||||
break;
|
||||
}
|
||||
};
|
||||
@@ -251,7 +249,7 @@ const Tools: React.FC = () => {
|
||||
templates,
|
||||
visualizationSocket,
|
||||
projectId,
|
||||
versionId: selectedVersion?.versionId || ''
|
||||
versionId: selectedVersion?.versionId || "",
|
||||
})
|
||||
}
|
||||
/>
|
||||
@@ -278,6 +276,10 @@ const Tools: React.FC = () => {
|
||||
return FreeMoveIcon;
|
||||
case "delete":
|
||||
return DeleteIcon;
|
||||
case "move":
|
||||
return MoveIcon;
|
||||
case "rotate":
|
||||
return RotateIcon;
|
||||
default:
|
||||
return CursorIcon;
|
||||
}
|
||||
@@ -304,6 +306,10 @@ const Tools: React.FC = () => {
|
||||
return <FreeMoveIcon isActive={false} />;
|
||||
case "delete":
|
||||
return <DeleteIcon isActive={false} />;
|
||||
case "move":
|
||||
return <MoveIcon />;
|
||||
case "rotate":
|
||||
return <RotateIcon />;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
@@ -362,6 +368,24 @@ const Tools: React.FC = () => {
|
||||
)}
|
||||
</div>
|
||||
|
||||
{activeModule !== "visualization" && (
|
||||
<>
|
||||
<div className="split"></div>
|
||||
<div className="transform-tools">
|
||||
{["move", "rotate"].map((tool) => (
|
||||
<ToolButton
|
||||
key={tool}
|
||||
toolId={tool}
|
||||
icon={getIconByTool(tool)}
|
||||
tooltip={`${tool}`}
|
||||
active={activeTool === tool}
|
||||
onClick={() => setActiveTool(tool)}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
|
||||
<div className="split"></div>
|
||||
{activeModule === "builder" && renderBuilderTools()}
|
||||
{activeModule === "simulation" && renderSimulationTools()}
|
||||
|
||||
@@ -100,6 +100,7 @@ const MeasurementTool = () => {
|
||||
canvasElement.removeEventListener("pointerup", onMouseUp);
|
||||
canvasElement.removeEventListener("contextmenu", onContextMenu);
|
||||
};
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [toolMode, camera, raycaster, pointer, scene, points]);
|
||||
|
||||
useFrame(() => {
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
}
|
||||
|
||||
.draw-tools,
|
||||
.transform-tools,
|
||||
.general-options,
|
||||
.activeDropicon {
|
||||
@include flex-center;
|
||||
|
||||
Reference in New Issue
Block a user