mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-03-13 17:10:06 +00:00
feat/fix: App mode QA feedback 2 (#9511)
## Summary Additional fixes and updates based on testing ## Changes - **What**: - add warning to welcome screen & when sharing an app that has had all outputs removed - fix target workflow when changing mode via tab right click menu - change build app text to be conditional "edit" vs "build" depending on if an app is already defined - update empty apps sidebar tab button text to make it clearer - remove templates button from app mode (we will reintroduce this once we have app templates) - add "exit to graph" after applying default mode of node graph - update cancel button to remove item from queue if it hasn't started yet - improve scoping of jobs/outputs to the current workflow [not perfect but should be much improved] - close sidebar tabs on entering app mode - change tooltip to be under the workflow menu rather than covering the button ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-9511-feat-fix-App-mode-QA-feedback-2-31b6d73d365081d59bbbc13111100d46) by [Unito](https://www.unito.io)
This commit is contained in:
@@ -1,18 +1,57 @@
|
||||
import ShareWorkflowDialogContent from '@/platform/workflow/sharing/components/ShareWorkflowDialogContent.vue'
|
||||
import { useDialogService } from '@/services/dialogService'
|
||||
import { useDialogStore } from '@/stores/dialogStore'
|
||||
import { useWorkflowStore } from '../../management/stores/workflowStore'
|
||||
import { useAppModeStore } from '@/stores/appModeStore'
|
||||
import { showConfirmDialog } from '@/components/dialog/confirm/confirmDialog'
|
||||
import { t } from '@/i18n'
|
||||
|
||||
const DIALOG_KEY = 'global-share-workflow'
|
||||
|
||||
export function useShareDialog() {
|
||||
const dialogService = useDialogService()
|
||||
const dialogStore = useDialogStore()
|
||||
const { pruneLinearData } = useAppModeStore()
|
||||
const workflowStore = useWorkflowStore()
|
||||
|
||||
function hide() {
|
||||
dialogStore.closeDialog({ key: DIALOG_KEY })
|
||||
}
|
||||
|
||||
function show() {
|
||||
function showNoOutputsDialogIfRequired(share: () => void) {
|
||||
const wf = workflowStore.activeWorkflow
|
||||
if (!wf) return share()
|
||||
|
||||
const isAppDefault = wf.initialMode === 'app'
|
||||
const linearData = wf.changeTracker?.activeState?.extra?.linearData
|
||||
const { outputs } = pruneLinearData(linearData)
|
||||
|
||||
if (isAppDefault && outputs.length === 0) {
|
||||
const dialog = showConfirmDialog({
|
||||
headerProps: {
|
||||
title: t('shareNoOutputs.title')
|
||||
},
|
||||
props: {
|
||||
promptText: t('shareNoOutputs.message'),
|
||||
preserveNewlines: true
|
||||
},
|
||||
footerProps: {
|
||||
confirmText: t('shareNoOutputs.shareAnyway'),
|
||||
confirmVariant: 'secondary',
|
||||
onCancel: () => dialogStore.closeDialog(dialog),
|
||||
onConfirm: () => {
|
||||
dialogStore.closeDialog(dialog)
|
||||
share()
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
share()
|
||||
}
|
||||
|
||||
function showShareDialog() {
|
||||
dialogService.showLayoutDialog({
|
||||
key: DIALOG_KEY,
|
||||
component: ShareWorkflowDialogContent,
|
||||
@@ -29,6 +68,10 @@ export function useShareDialog() {
|
||||
})
|
||||
}
|
||||
|
||||
function show() {
|
||||
showNoOutputsDialogIfRequired(showShareDialog)
|
||||
}
|
||||
|
||||
return {
|
||||
show,
|
||||
hide
|
||||
|
||||
Reference in New Issue
Block a user