Files
ComfyUI_frontend/src/platform/workflow/sharing/composables/useComfyHubPublishDialog.ts
Alexander Brown 416f96649b [backport cloud/1.40] feat: workflow sharing and ComfyHub publish flow (#9454)
Backport of #8951 to `cloud/1.40`.

Cherry-pick of merge commit `1bac5d9bddd2106b04f330733a45094df379b592`
with conflict resolution.

## Conflict Resolution

- **TopMenuSection.vue**: Kept both queue context menu (from target) and
share tooltip/button (from PR)
- **StatusBadge.vue**: Accepted PR version (adds `class` prop,
`badgeClass` computed with `cn()`)
- **WorkflowTab.vue**: Kept target branch version — PR's context menu
additions depend on `WorkflowActionsList.vue` and
`types/workflowMenuItem` which don't exist on `cloud/1.40`
- **composables/README.md**: Merged both — kept `useValueTransform` from
target, used `useWorkflowPersistenceV2` from PR
- **Textarea.vue**: Accepted PR version (new file, deleted in target)
- **Binary snapshot**: Accepted PR version
- **pnpm-lock.yaml**: Regenerated with `pnpm install`

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9454-backport-cloud-1-40-feat-workflow-sharing-and-ComfyHub-publish-flow-31b6d73d3650813ebd55e0d2a24860ec)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: github-actions <github-actions@github.com>
2026-03-06 02:42:47 +00:00

30 lines
685 B
TypeScript

import ComfyHubPublishDialog from '@/platform/workflow/sharing/components/publish/ComfyHubPublishDialog.vue'
import { useDialogService } from '@/services/dialogService'
import { useDialogStore } from '@/stores/dialogStore'
const DIALOG_KEY = 'global-comfyhub-publish'
export function useComfyHubPublishDialog() {
const dialogService = useDialogService()
const dialogStore = useDialogStore()
function hide() {
dialogStore.closeDialog({ key: DIALOG_KEY })
}
function show() {
dialogService.showLayoutDialog({
key: DIALOG_KEY,
component: ComfyHubPublishDialog,
props: {
onClose: hide
}
})
}
return {
show,
hide
}
}