diff options
| author | Sam Nystrom <sam@samnystrom.dev> | 2024-03-08 08:09:18 +0000 |
|---|---|---|
| committer | Sam Nystrom <sam@samnystrom.dev> | 2024-03-09 02:05:58 -0500 |
| commit | 9fb6fa12590609a4cd25d2e212166c61e1c23580 (patch) | |
| tree | 94f494fb4a0a841a8d17b3215227b7a7d77a3685 /src/Toolbar.tsx | |
| parent | 5d06d2359e8ad50f7a61ecd1787a0ad558329964 (diff) | |
Add basic toolbar
Diffstat (limited to 'src/Toolbar.tsx')
| -rw-r--r-- | src/Toolbar.tsx | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/Toolbar.tsx b/src/Toolbar.tsx new file mode 100644 index 0000000..62c79fe --- /dev/null +++ b/src/Toolbar.tsx @@ -0,0 +1,30 @@ +import { useId } from 'preact/hooks'; +import { NodeInfo } from './node.tsx'; +import styles from './Toolbar.module.css'; + +export interface ToolbarProps { + nodes: Record<string, NodeInfo>; + onNodeAdded?: (NodeInfo) => void; +} + +export const Toolbar = ({ nodes, onNodeAdded = _ => {} }: ToolbarProps) => { + const id = useId(); + return ( + <div class={styles.toolbar}> + <menu> + <li><button>Edit</button></li> + <li><button>Select</button></li> + <li> + <menu id={id} class={styles.addMenu} popover="auto"> + {Object.entries(nodes).map(([name, node]) => ( + <li><button onClick={() => onNodeAdded(node)}>{name}</button></li> + ))} + </menu> + <button popoverTarget={id}>Add</button> + </li> + </menu> + <h1>My Project</h1> + <div></div> + </div> + ); +};
\ No newline at end of file |
