import { BuildingNode, LevelNode, useScene } from "@pascal-app/core"; import { Building2, Plus } from "lucide-react"; import { useState } from "react"; import { TreeNode, TreeNodeWrapper } from "./tree-node"; 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 handleClick = () => { // Handle building selection }; const handleAddLevel = (e: React.MouseEvent) => { e.stopPropagation(); const newLevel = LevelNode.parse({ level: node.children.length, children: [], parentId: node.id, }); createNode(newLevel, node.id); }; return ( } label={node.name || "Building"} depth={depth} hasChildren={node.children.length > 0} expanded={expanded} onToggle={() => setExpanded(!expanded)} onClick={handleClick} actions={ Add new level } > {node.children.map((childId) => ( ))} ); }