@@ -13,6 +13,7 @@ import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
1313import { useCommandStore } from '@/stores/commandStore'
1414import { useMenuItemStore } from '@/stores/menuItemStore'
1515import { useSubgraphStore } from '@/stores/subgraphStore'
16+ import { useAppModeStore } from '@/stores/appModeStore'
1617import type {
1718 WorkflowMenuAction ,
1819 WorkflowMenuItem
@@ -52,6 +53,7 @@ export function useWorkflowActionsMenu(
5253 const menuItemStore = useMenuItemStore ( )
5354 const canvasStore = useCanvasStore ( )
5455 const { flags } = useFeatureFlags ( )
56+ const { enterBuilder } = useAppModeStore ( )
5557
5658 const targetWorkflow = computed (
5759 ( ) => workflow ?. value ?? workflowStore . activeWorkflow
@@ -81,9 +83,9 @@ export function useWorkflowActionsMenu(
8183 prependSeparator = false ,
8284 isNew = false
8385 } : AddItemOptions ) => {
84- if ( ! visible ) return
85- if ( prependSeparator ) items . push ( { separator : true } )
86+ if ( prependSeparator && visible ) items . push ( { separator : true } )
8687 const item : WorkflowMenuAction = { id, label, icon, command, disabled }
88+ if ( ! visible ) item . visible = false
8789 if ( isNew ) {
8890 item . badge = t ( 'g.experimental' )
8991 item . isNew = true
@@ -96,6 +98,11 @@ export function useWorkflowActionsMenu(
9698 isRoot && ( menuItemStore . hasSeenLinear || flags . linearToggleEnabled )
9799 const isBookmarked = bookmarkStore . isBookmarked ( workflow ?. path ?? '' )
98100
101+ const toggleLinear = async ( ) => {
102+ await commandStore . execute ( 'Comfy.ToggleLinear' , {
103+ metadata : { source : 'breadcrumb_menu' }
104+ } )
105+ }
99106 addItem ( {
100107 id : 'rename' ,
101108 label : t ( 'g.rename' ) ,
@@ -181,21 +188,31 @@ export function useWorkflowActionsMenu(
181188 } )
182189
183190 addItem ( {
184- id : 'toggle-app-mode' ,
185- label : isLinearMode
186- ? t ( 'breadcrumbsMenu.exitAppMode' )
187- : t ( 'breadcrumbsMenu.enterAppMode' ) ,
188- icon : isLinearMode
189- ? 'icon-[comfy--workflow]'
190- : 'icon-[lucide--panels-top-left]' ,
191- command : async ( ) => {
192- await commandStore . execute ( 'Comfy.ToggleLinear' , {
193- metadata : { source : 'breadcrumb_menu' }
194- } )
195- } ,
196- visible : showAppModeItems ,
191+ id : 'enter-app-mode' ,
192+ label : t ( 'breadcrumbsMenu.enterAppMode' ) ,
193+ icon : 'icon-[lucide--panels-top-left]' ,
194+ command : toggleLinear ,
195+ visible : showAppModeItems && ! isLinearMode ,
197196 prependSeparator : true ,
198- isNew : ! isLinearMode
197+ isNew : true
198+ } )
199+
200+ addItem ( {
201+ id : 'exit-app-mode' ,
202+ label : t ( 'breadcrumbsMenu.exitAppMode' ) ,
203+ icon : 'icon-[comfy--workflow]' ,
204+ command : toggleLinear ,
205+ visible : isLinearMode ,
206+ prependSeparator : true
207+ } )
208+
209+ addItem ( {
210+ id : 'enter-builder-mode' ,
211+ label : t ( 'breadcrumbsMenu.enterBuilderMode' ) ,
212+ icon : 'icon-[lucide--hammer]' ,
213+ command : ( ) => enterBuilder ( ) ,
214+ visible : showAppModeItems ,
215+ isNew : true
199216 } )
200217
201218 addItem ( {
0 commit comments