diff --git a/src/components/appMode/AppModeToolbar.vue b/src/components/appMode/AppModeToolbar.vue index 8f012e15d1..3d66fafc0e 100644 --- a/src/components/appMode/AppModeToolbar.vue +++ b/src/components/appMode/AppModeToolbar.vue @@ -3,9 +3,16 @@ import { computed } from 'vue' import { useI18n } from 'vue-i18n' import WorkflowActionsDropdown from '@/components/common/WorkflowActionsDropdown.vue' +import { useErrorHandling } from '@/composables/useErrorHandling' +import { useFeatureFlags } from '@/composables/useFeatureFlags' import Button from '@/components/ui/button/Button.vue' import { useAppMode } from '@/composables/useAppMode' import { useWorkflowTemplateSelectorDialog } from '@/composables/useWorkflowTemplateSelectorDialog' +import { isCloud } from '@/platform/distribution/types' +import { + openShareDialog, + prefetchShareDialog +} from '@/platform/workflow/sharing/composables/lazyShareDialog' import { useAppModeStore } from '@/stores/appModeStore' import { useCommandStore } from '@/stores/commandStore' import { useWorkspaceStore } from '@/stores/workspaceStore' @@ -18,6 +25,8 @@ const workspaceStore = useWorkspaceStore() const { enableAppBuilder } = useAppMode() const appModeStore = useAppModeStore() const { enterBuilder } = appModeStore +const { toastErrorHandler } = useErrorHandling() +const { flags } = useFeatureFlags() const { hasNodes } = storeToRefs(appModeStore) const tooltipOptions = { showDelay: 300, hideDelay: 300 } @@ -60,6 +69,21 @@ function openTemplates() { > +
{ void appModeStore.selectedOutputs.length return canvas - .graph!.nodes.filter((n) => n.constructor.nodeData?.output_node) + .graph!.nodes.filter( + (n) => + n.constructor.nodeData?.output_node && n.mode === LGraphEventMode.ALWAYS + ) .map(nodeToDisplayTuple) }) const renderedInputs = computed<[string, MaybeRef | undefined][]>( @@ -215,6 +222,7 @@ const renderedInputs = computed<[string, MaybeRef | undefined][]>( v-if="isArrangeMode" v-slot="{ dragClass }" v-model="appModeStore.selectedInputs" + class="overflow-x-clip" >
1200 : zoom.value < -500)) + return zoom.value -= e.deltaY const { x, y, width, height } = zoomPaneEl.getBoundingClientRect() diff --git a/src/composables/useWorkflowActionsMenu.test.ts b/src/composables/useWorkflowActionsMenu.test.ts index 36a2c7ec2f..73a355c809 100644 --- a/src/composables/useWorkflowActionsMenu.test.ts +++ b/src/composables/useWorkflowActionsMenu.test.ts @@ -81,6 +81,8 @@ vi.mock('@/stores/appModeStore', () => ({ useAppModeStore: vi.fn(() => mockAppModeStore) })) +vi.mock('@/composables/useErrorHandling', () => ({})) + vi.mock('@/composables/useFeatureFlags', () => ({ useFeatureFlags: vi.fn(() => mockFeatureFlags) })) diff --git a/src/composables/useWorkflowActionsMenu.ts b/src/composables/useWorkflowActionsMenu.ts index b4e186eacc..9bce704606 100644 --- a/src/composables/useWorkflowActionsMenu.ts +++ b/src/composables/useWorkflowActionsMenu.ts @@ -2,7 +2,10 @@ import type { ComputedRef, Ref } from 'vue' import { computed } from 'vue' import { useI18n } from 'vue-i18n' +import { useErrorHandling } from '@/composables/useErrorHandling' import { useFeatureFlags } from '@/composables/useFeatureFlags' +import { isCloud } from '@/platform/distribution/types' +import { openShareDialog } from '@/platform/workflow/sharing/composables/lazyShareDialog' import { useWorkflowService } from '@/platform/workflow/core/services/workflowService' import type { ComfyWorkflow } from '@/platform/workflow/management/stores/workflowStore' import { @@ -191,8 +194,9 @@ export function useWorkflowActionsMenu( id: 'share', label: t('breadcrumbsMenu.share'), icon: 'icon-[comfy--send]', - command: async () => {}, - visible: false + command: () => + openShareDialog().catch(useErrorHandling().toastErrorHandler), + visible: isCloud && flags.workflowSharingEnabled }) addItem({ diff --git a/src/renderer/extensions/linearMode/AppInput.vue b/src/renderer/extensions/linearMode/AppInput.vue index 9e855f61fd..7b56dbb6f8 100644 --- a/src/renderer/extensions/linearMode/AppInput.vue +++ b/src/renderer/extensions/linearMode/AppInput.vue @@ -8,7 +8,7 @@ import { cn } from '@/utils/tailwindUtil' const { id, name } = defineProps<{ id: string - isSelectInputsMode: boolean + enable: boolean name: string }>() @@ -25,7 +25,7 @@ function togglePromotion() {