import React, { lazy } from 'react' import { Menu, MenuItem } from '@mui/material' import { observer } from 'mobx-react' import type { MsaViewModel } from '../../model.ts' // lazies const TreeNodeInfoDialog = lazy( () => import('./dialogs/TreeNodeInfoDialog.tsx'), ) const TreeMenu = observer(function ({ node, onClose, model, }: { node: { x: number y: number name: string id: string } model: MsaViewModel onClose: () => void }) { const { collapsed } = model const { name, id } = node const isCollapsed = collapsed.includes(id) return ( {name} { model.queueDialog(onClose => [ TreeNodeInfoDialog, { info: model.getRowData(name), model, nodeName: name, onClose, }, ]) onClose() }} > More info... { model.toggleCollapsed(id) onClose() }} > {isCollapsed ? 'Show node' : 'Hide node'} { model.drawRelativeTo(node.name) onClose() }} > Indicate differences from this row {model.relativeTo ? ( { model.drawRelativeTo(undefined) onClose() }} > Clear reference row ) : null} ) }) export default TreeMenu