Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
a169bae
feat(dialog): migrate Error / NodeSearchBox / SecretForm / VideoHelp …
dante01yoon May 9, 2026
0d1f4d0
fix(dialog): use raw Reka primitives for NodeSearchBoxPopover layering
dante01yoon May 9, 2026
0bb0d91
fix(dialog): disable Reka modal on dialogs that host teleported Prime…
dante01yoon May 9, 2026
31e3b9c
fix(dialog): treat PrimeVue overlay clicks as inside the search dialog
dante01yoon May 10, 2026
67e2d16
fix(dialog): also guard CustomizationDialog from PrimeVue ColorPicker…
dante01yoon May 10, 2026
91500c9
revert(dialog): defer NodeSearchBoxPopover migration to a separate PR
dante01yoon May 10, 2026
d30556f
fix(dialog): prevent backdrop dismiss on SecretFormDialog
dante01yoon May 11, 2026
9dcb9fa
fix(dialog): apply CodeRabbit review suggestions
dante01yoon May 12, 2026
3850696
feat(dialog): migrate Settings dialog to Reka-UI (Phase 3)
dante01yoon May 12, 2026
bfcc338
fix(dialog): stack PrimeVue overlays and KeybindingPanel context menu…
dante01yoon May 12, 2026
3db5914
[automated] Update test expectations
invalid-email-address May 12, 2026
e2cbb09
refactor(dialog): use defineModel in CustomizationDialog
dante01yoon May 14, 2026
5ffc0f4
Merge branch 'jaewon/dialog-reka-migration-phase-2' into jaewon/fe-57…
dante01yoon May 14, 2026
b1fd204
Merge branch 'main' into jaewon/fe-575-dialog-reka-migration-phase-3
dante01yoon May 18, 2026
30cfec5
chore: apply tailwind class-order auto-fixes from main merge
dante01yoon May 18, 2026
b01a7b5
fix(dialog): keep PrimeVue overlays clickable inside Reka modal Settings
dante01yoon May 18, 2026
d408931
[automated] Apply ESLint and Oxfmt fixes
actions-user May 18, 2026
bb720be
[automated] Update test expectations
invalid-email-address May 18, 2026
48f142d
fix(dialog): make Settings non-modal so nested PrimeVue dialogs work
dante01yoon May 18, 2026
c454af1
docs: add Settings dialog migration screenshots for PR description
dante01yoon May 18, 2026
8cf0e3a
Merge branch 'main' into jaewon/fe-575-dialog-reka-migration-phase-3
dante01yoon May 18, 2026
cbe1b70
fix(dialog): also prevent dismiss on focus-outside for non-modal Reka
dante01yoon May 19, 2026
70f3825
chore: re-apply tailwind class-order auto-fixes after main merge
dante01yoon May 19, 2026
8d9c5d3
[automated] Apply ESLint and Oxfmt fixes
actions-user May 19, 2026
799c53f
fix(dialog): share PrimeVue ZIndex counter so stacked dialogs stack c…
dante01yoon May 19, 2026
d16489d
chore(knip): drop @primeuix/utils ignoreDependencies entry now that w…
dante01yoon May 19, 2026
1e8052b
[automated] Update test expectations
invalid-email-address May 19, 2026
45fe747
Merge remote-tracking branch 'origin/main' into jaewon/fe-575-dialog-…
dante01yoon May 20, 2026
00d5591
test: revert unrelated screenshot updates to match main
dante01yoon May 21, 2026
3de88b7
feat(dialog): migrate Manager dialog to Reka-UI (Phase 4)
dante01yoon May 21, 2026
6e99d35
Merge branch 'main' into jaewon/fe-576-dialog-reka-migration-phase-4
dante01yoon May 28, 2026
90b9585
chore: remove temp screenshots from version control
dante01yoon May 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/**
* Manager dialog migration regression net: `useManagerDialog().show()` must
* route through the Reka renderer at the legacy Manager dimensions (1724px
* max-width × 80vh, expanding at 3000px). Catches accidental reverts of the
* Phase 4 renderer flip.
*/
import { beforeEach, describe, expect, it, vi } from 'vitest'

const showDialog = vi.hoisted(() => vi.fn())
const closeDialog = vi.hoisted(() => vi.fn())

vi.mock('@/stores/dialogStore', () => ({
useDialogStore: () => ({ showDialog, closeDialog })
}))

import { ManagerTab } from '@/workbench/extensions/manager/types/comfyManagerTypes'
import { useManagerDialog } from '@/workbench/extensions/manager/composables/useManagerDialog'

describe('useManagerDialog', () => {
beforeEach(() => {
showDialog.mockReset()
closeDialog.mockReset()
})

it("show() opens the Reka renderer with size 'full' and Manager content sizing", () => {
useManagerDialog().show()
const [args] = showDialog.mock.calls[0]
expect(args.key).toBe('global-manager')
expect(args.dialogComponentProps.renderer).toBe('reka')
expect(args.dialogComponentProps.size).toBe('full')
expect(args.dialogComponentProps.contentClass).toContain('max-w-[1724px]')
expect(args.dialogComponentProps.contentClass).toContain('h-[80vh]')
expect(args.dialogComponentProps.contentClass).toContain('max-h-[1026px]')
expect(args.dialogComponentProps.contentClass).toContain(
'min-[3000px]:max-w-[2200px]'
)
})

it('show() uses non-modal Reka so nested PrimeVue overlays keep focus and pointer events', () => {
useManagerDialog().show()
const [args] = showDialog.mock.calls[0]
expect(args.dialogComponentProps.modal).toBe(false)
})

it('show(initialTab) forwards initialTab to ManagerDialog props', () => {
useManagerDialog().show(ManagerTab.UpdateAvailable)
const [args] = showDialog.mock.calls[0]
expect(args.props.initialTab).toBe(ManagerTab.UpdateAvailable)
})

it('show(initialTab, initialPackId) forwards initialPackId to ManagerDialog props', () => {
useManagerDialog().show(ManagerTab.All, 'pack-123')
const [args] = showDialog.mock.calls[0]
expect(args.props.initialPackId).toBe('pack-123')
})

it('hide() closes the global-manager dialog', () => {
useManagerDialog().hide()
expect(closeDialog).toHaveBeenCalledWith({ key: 'global-manager' })
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import ManagerDialog from '@/workbench/extensions/manager/components/manager/Man

const DIALOG_KEY = 'global-manager'

const MANAGER_CONTENT_CLASS =
'w-[90vw] max-w-[1724px] sm:max-w-[1724px] h-[80vh] max-h-[1026px] min-[3000px]:max-w-[2200px] min-[3000px]:max-h-[1320px] rounded-2xl overflow-hidden'

export function useManagerDialog() {
const dialogService = useDialogService()
const dialogStore = useDialogStore()
Expand All @@ -21,6 +24,15 @@ export function useManagerDialog() {
onClose: hide,
initialTab,
initialPackId
},
dialogComponentProps: {
renderer: 'reka',
// Manager hosts PrimeVue overlays (SingleSelect, SearchAutocomplete)
// teleported to body. Reka's modal mode traps focus and disables body
// pointer-events, breaking those overlays. Mirrors Settings.
modal: false,
size: 'full',
contentClass: MANAGER_CONTENT_CLASS
}
})
}
Expand Down
Loading