blob: 197f56d9c0b2e30190935aec03b0d4aa0ad87431 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import { useId } from 'preact/hooks';
import { NodeInfo } from './node.tsx';
export interface AddNodeMenuProps {
nodes: Record<string, NodeInfo>;
onClick?: (NodeInfo) => void;
}
export const AddNodeMenu = ({ nodes, onClick = _ => {} }: AddNodeMenuProps) => {
const id = useId();
return (
<>
<menu id={id} popover>
{Object.entries(nodes).map(([name, node]) => (
<li><button onClick={() => onClick(node)}>{name}</button></li>
))}
</menu>
<button popoverTarget={id}>Add</button>
</>
);
};
|