diff --git a/src/renderer/components/MenuEditorView/MenuEditorView.tsx b/src/renderer/components/MenuEditorView/MenuEditorView.tsx index c7321a0..44c485b 100644 --- a/src/renderer/components/MenuEditorView/MenuEditorView.tsx +++ b/src/renderer/components/MenuEditorView/MenuEditorView.tsx @@ -597,8 +597,10 @@ export const MenuEditorView: React.FC = () => { setSelectedId(nodes[0]?.data.id || null); }} > - {({ node, style, tree }) => ( + {({ node, style, tree, dragHandle }) => (
setSelectedId(node.data.id)} diff --git a/tests/renderer/components/MenuEditorView.test.tsx b/tests/renderer/components/MenuEditorView.test.tsx index f9e3b67..2de53c2 100644 --- a/tests/renderer/components/MenuEditorView.test.tsx +++ b/tests/renderer/components/MenuEditorView.test.tsx @@ -105,6 +105,16 @@ describe('MenuEditorView entry editor', () => { expect(screen.getByRole('button', { name: /^delete$/i })).toBeInTheDocument(); }); + it('marks outliner rows as drag handles so drag-and-drop can start from rows', async () => { + const { container } = render(); + + await screen.findByRole('button', { name: /add entry/i }); + + const row = container.querySelector('.menu-editor-row'); + expect(row).not.toBeNull(); + expect(row).toHaveAttribute('data-drag-handle', 'true'); + }); + it('finalizes entry as page on a double-click gesture', async () => { render();