Skip to content

Commit 40cfc43

Browse files
benceruleanlugithub-actionsclaude
authored
Add Help Menu in NodeLibrarySidebarTab (#3922)
Co-authored-by: github-actions <[email protected]> Co-authored-by: Claude <[email protected]>
1 parent 35a811c commit 40cfc43

File tree

25 files changed

+1692
-101
lines changed

25 files changed

+1692
-101
lines changed

browser_tests/tests/nodeHelp.spec.ts

Lines changed: 556 additions & 0 deletions
Large diffs are not rendered by default.

package-lock.json

Lines changed: 41 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"@pinia/testing": "^0.1.5",
3636
"@playwright/test": "^1.44.1",
3737
"@trivago/prettier-plugin-sort-imports": "^5.2.0",
38+
"@types/dompurify": "^3.0.5",
3839
"@types/fs-extra": "^11.0.4",
3940
"@types/lodash": "^4.17.6",
4041
"@types/node": "^20.14.8",
@@ -92,12 +93,14 @@
9293
"@xterm/xterm": "^5.5.0",
9394
"algoliasearch": "^5.21.0",
9495
"axios": "^1.8.2",
96+
"dompurify": "^3.2.5",
9597
"dotenv": "^16.4.5",
9698
"firebase": "^11.6.0",
9799
"fuse.js": "^7.0.0",
98100
"jsondiffpatch": "^0.6.0",
99101
"lodash": "^4.17.21",
100102
"loglevel": "^1.9.2",
103+
"marked": "^15.0.11",
101104
"pinia": "^2.1.7",
102105
"primeicons": "^7.0.0",
103106
"primevue": "^4.2.5",

src/components/graph/SelectionToolbox.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
:key="command.id"
1919
:command="command"
2020
/>
21+
<HelpButton />
2122
</Panel>
2223
</template>
2324

@@ -30,6 +31,7 @@ import ColorPickerButton from '@/components/graph/selectionToolbox/ColorPickerBu
3031
import DeleteButton from '@/components/graph/selectionToolbox/DeleteButton.vue'
3132
import ExecuteButton from '@/components/graph/selectionToolbox/ExecuteButton.vue'
3233
import ExtensionCommandButton from '@/components/graph/selectionToolbox/ExtensionCommandButton.vue'
34+
import HelpButton from '@/components/graph/selectionToolbox/HelpButton.vue'
3335
import MaskEditorButton from '@/components/graph/selectionToolbox/MaskEditorButton.vue'
3436
import PinButton from '@/components/graph/selectionToolbox/PinButton.vue'
3537
import RefreshButton from '@/components/graph/selectionToolbox/RefreshButton.vue'
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<template>
2+
<Button
3+
v-show="nodeDef"
4+
v-tooltip.top="{
5+
value: $t('g.help'),
6+
showDelay: 1000
7+
}"
8+
class="help-button"
9+
text
10+
icon="pi pi-question-circle"
11+
severity="secondary"
12+
@click="showHelp"
13+
/>
14+
</template>
15+
16+
<script setup lang="ts">
17+
import Button from 'primevue/button'
18+
import { computed } from 'vue'
19+
20+
import { useNodeLibrarySidebarTab } from '@/composables/sidebarTabs/useNodeLibrarySidebarTab'
21+
import { useCanvasStore } from '@/stores/graphStore'
22+
import type { ComfyNodeDefImpl } from '@/stores/nodeDefStore'
23+
import { useNodeDefStore } from '@/stores/nodeDefStore'
24+
import { useNodeHelpStore } from '@/stores/workspace/nodeHelpStore'
25+
import { useSidebarTabStore } from '@/stores/workspace/sidebarTabStore'
26+
import { isLGraphNode } from '@/utils/litegraphUtil'
27+
28+
const canvasStore = useCanvasStore()
29+
const nodeDefStore = useNodeDefStore()
30+
const sidebarTabStore = useSidebarTabStore()
31+
const nodeHelpStore = useNodeHelpStore()
32+
const { id: nodeLibraryTabId } = useNodeLibrarySidebarTab()
33+
34+
const nodeDef = computed<ComfyNodeDefImpl | null>(() => {
35+
if (canvasStore.selectedItems.length !== 1) return null
36+
const item = canvasStore.selectedItems[0]
37+
if (!isLGraphNode(item)) return null
38+
return nodeDefStore.fromLGraphNode(item)
39+
})
40+
41+
const showHelp = () => {
42+
const def = nodeDef.value
43+
if (!def) return
44+
if (sidebarTabStore.activeSidebarTabId !== nodeLibraryTabId) {
45+
sidebarTabStore.toggleSidebarTab(nodeLibraryTabId)
46+
}
47+
nodeHelpStore.openHelp(def)
48+
}
49+
</script>

0 commit comments

Comments
 (0)