From 58b051a4738c6c4674636dcc2c028eb8b7dd4bbb Mon Sep 17 00:00:00 2001 From: AustinMroz Date: Sun, 23 Nov 2025 11:25:30 -0800 Subject: [PATCH] Share button and Assets Panel in Linear Mode (#6794) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Re-enables the share button in Linear Mode and have it export the current workflow - Not as nice as having it copy an actual URL, but good enough for the interim and it help with dead space - Display the Media Assets Panel on the left hand side to replace the removed Queue Panel image ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6794-Share-button-and-Assets-Panel-in-Linear-Mode-2b26d73d36508178aef9ededa38d47f1) by [Unito](https://www.unito.io) --- src/locales/en/main.json | 4 ++++ src/views/LinearView.vue | 32 ++++++++++++++++++++++++-------- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/locales/en/main.json b/src/locales/en/main.json index 3f2defaf3..d64aca2c2 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -2199,6 +2199,10 @@ "vueNodesMigrationMainMenu": { "message": "Switch back to Nodes 2.0 anytime from the main menu." }, + "linearMode": { + "share": "Share", + "openWorkflow": "Open Workflow" + }, "missingNodes": { "cloud": { "title": "These nodes aren't available on Comfy Cloud yet", diff --git a/src/views/LinearView.vue b/src/views/LinearView.vue index bdb1fee3b..3c81f3b39 100644 --- a/src/views/LinearView.vue +++ b/src/views/LinearView.vue @@ -5,6 +5,7 @@ import Splitter from 'primevue/splitter' import SplitterPanel from 'primevue/splitterpanel' import { computed } from 'vue' +import ExtensionSlot from '@/components/common/ExtensionSlot.vue' import CurrentUserButton from '@/components/topbar/CurrentUserButton.vue' import LoginButton from '@/components/topbar/LoginButton.vue' import TopbarBadges from '@/components/topbar/TopbarBadges.vue' @@ -14,20 +15,20 @@ import { isValidWidgetValue, safeWidgetMapper } from '@/composables/graph/useGraphNodeManager' +import { useAssetsSidebarTab } from '@/composables/sidebarTabs/useAssetsSidebarTab' import { t } from '@/i18n' import type { LGraphNode } from '@/lib/litegraph/src/LGraphNode' import { useTelemetry } from '@/platform/telemetry' +import { useWorkflowService } from '@/platform/workflow/core/services/workflowService' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import NodeWidgets from '@/renderer/extensions/vueNodes/components/NodeWidgets.vue' import WidgetInputNumberInput from '@/renderer/extensions/vueNodes/widgets/components/WidgetInputNumber.vue' import { app } from '@/scripts/app' import { useCommandStore } from '@/stores/commandStore' import { useNodeOutputStore } from '@/stores/imagePreviewStore' -//import { useQueueStore } from '@/stores/queueStore' import { useQueueSettingsStore } from '@/stores/queueStore' import { isElectron } from '@/utils/envUtil' -//const queueStore = useQueueStore() const nodeOutputStore = useNodeOutputStore() const commandStore = useCommandStore() const nodeDatas = computed(() => { @@ -114,9 +115,16 @@ function openFeedback() { class="h-[calc(100%-38px)] w-full bg-comfy-menu-secondary-bg" :pt="{ gutter: { class: 'bg-transparent w-4 -mx-3' } }" > + + +
-