modular options

This commit is contained in:
2026-03-07 20:36:24 +01:00
parent 5aa01f4dec
commit 65d4f216a8
2 changed files with 84 additions and 53 deletions

View File

@@ -96,10 +96,23 @@ export const ConfigNode = memo(function ConfigNode({ id, data, width, height }:
[onChange, value]
)
const insertExtendsFromNode = useCallback(
(sourceNode: any, mode: 'prepend' | 'append' | 'cursor') => {
insertAt(`{% extends "${sourceNode.id}" %}\n`, mode)
},
[insertAt]
)
const insertIncludeFromNode = useCallback(
(sourceNode: any, mode: 'prepend' | 'append' | 'cursor') => {
const ref = `${sourceNode.id}.puml`
insertAt(`!include ${ref}\n`, mode)
insertAt(`{% include "${sourceNode.id}" %}\n`, mode)
},
[insertAt]
)
const insertImportFromNode = useCallback(
(sourceNode: any, mode: 'prepend' | 'append' | 'cursor') => {
insertAt(`{% import "${sourceNode.id}" as ${sourceNode.id} %}\n`, mode)
},
[insertAt]
)
@@ -162,21 +175,21 @@ export const ConfigNode = memo(function ConfigNode({ id, data, width, height }:
<MenubarSubContent>
<MenubarItem
className="text-xs"
onClick={() => insertIncludeFromNode(n, 'prepend')}
onClick={() => insertExtendsFromNode(n, 'cursor')}
>
Prepend include
</MenubarItem>
<MenubarItem
className="text-xs"
onClick={() => insertIncludeFromNode(n, 'append')}
>
Append include
extend
</MenubarItem>
<MenubarItem
className="text-xs"
onClick={() => insertIncludeFromNode(n, 'cursor')}
>
Insert at cursor
include
</MenubarItem>
<MenubarItem
className="text-xs"
onClick={() => insertImportFromNode(n, 'cursor')}
>
import
</MenubarItem>
</MenubarSubContent>
</MenubarSub>