import { BuildingNode, LevelNode, useScene } from "@pascal-app/core";
import { useViewer } from "@pascal-app/viewer";
import { Building2, Plus } from "lucide-react";
import { useState } from "react";
import { TreeNode, TreeNodeWrapper } from "./tree-node";
import { TreeNodeActions } from "./tree-node-actions";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "@/components/ui/primitives/tooltip";
interface BuildingTreeNodeProps {
node: BuildingNode;
depth: number;
}
export function BuildingTreeNode({ node, depth }: BuildingTreeNodeProps) {
const [expanded, setExpanded] = useState(true);
const createNode = useScene((state) => state.createNode);
const isSelected = useViewer((state) => state.selection.buildingId === node.id);
const isHovered = useViewer((state) => state.hoveredId === node.id);
const setSelection = useViewer((state) => state.setSelection);
const handleClick = () => {
setSelection({ buildingId: node.id });
};
const handleAddLevel = (e: React.MouseEvent) => {
e.stopPropagation();
const newLevel = LevelNode.parse({
level: node.children.length,
children: [],
parentId: node.id,
});
createNode(newLevel, node.id);
};
return (