mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-26 19:09:52 +00:00
## Summary This PR redesigns the graph canvas interface components including minimap, toolbox, and menu systems with updated spacing, colors, and interaction patterns - using the design tokens directly from Figma, which can be used elsewhere going forward. There are some other changes to the designs, outlined [here](https://www.notion.so/comfy-org/Update-Minimap-Menu-v2-2886d73d365080e88e12f8df027019c0): - [x] Update/standardize the padding between viewport and toolbox - [x] Update toolbox component’s style to match the other floating menus style (border radius, height, padding and follow theme colors) - [x] Expose the minimap button - [x] Remove the focus button and delete it’s keybinding - [x] Group the hand and the default cursor buttons https://github.com/user-attachments/assets/92542e60-c32d-4a21-a6f6-e72837a70b17 ## Review Focus New CSS variables for cross-component theming consistency and CanvasModeSelector component extraction for improved code organization. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6038-rework-minimap-toolbox-and-menu-designs-with-unified-theming-28b6d73d36508191a0c6cf8036d965c4) by [Unito](https://www.unito.io) --------- Co-authored-by: github-actions <github-actions@github.com>
83 lines
2.5 KiB
TypeScript
83 lines
2.5 KiB
TypeScript
import { expect } from '@playwright/test'
|
|
|
|
import { comfyPageFixture as test } from '../fixtures/ComfyPage'
|
|
|
|
test.beforeEach(async ({ comfyPage }) => {
|
|
await comfyPage.setSetting('Comfy.UseNewMenu', 'Disabled')
|
|
})
|
|
|
|
test.describe('Graph Canvas Menu', () => {
|
|
test.beforeEach(async ({ comfyPage }) => {
|
|
// Set link render mode to spline to make sure it's not affected by other tests'
|
|
// side effects.
|
|
await comfyPage.setSetting('Comfy.LinkRenderMode', 2)
|
|
// Enable canvas menu for all tests
|
|
await comfyPage.setSetting('Comfy.Graph.CanvasMenu', true)
|
|
})
|
|
|
|
test('Can toggle link visibility', async ({ comfyPage }) => {
|
|
const button = comfyPage.page.getByTestId('toggle-link-visibility-button')
|
|
await button.click()
|
|
await comfyPage.nextFrame()
|
|
await expect(comfyPage.canvas).toHaveScreenshot(
|
|
'canvas-with-hidden-links.png'
|
|
)
|
|
const hiddenLinkRenderMode = await comfyPage.page.evaluate(() => {
|
|
return window['LiteGraph'].HIDDEN_LINK
|
|
})
|
|
expect(await comfyPage.getSetting('Comfy.LinkRenderMode')).toBe(
|
|
hiddenLinkRenderMode
|
|
)
|
|
|
|
await button.click()
|
|
await comfyPage.nextFrame()
|
|
await expect(comfyPage.canvas).toHaveScreenshot(
|
|
'canvas-with-visible-links.png'
|
|
)
|
|
expect(await comfyPage.getSetting('Comfy.LinkRenderMode')).not.toBe(
|
|
hiddenLinkRenderMode
|
|
)
|
|
})
|
|
|
|
test('Toggle minimap button is clickable and has correct test id', async ({
|
|
comfyPage
|
|
}) => {
|
|
const minimapButton = comfyPage.page.getByTestId('toggle-minimap-button')
|
|
await expect(minimapButton).toBeVisible()
|
|
await expect(minimapButton).toBeEnabled()
|
|
|
|
// Test that the button can be clicked without error
|
|
await minimapButton.click()
|
|
await comfyPage.nextFrame()
|
|
})
|
|
|
|
test('Zoom controls popup opens and closes', async ({ comfyPage }) => {
|
|
// Find the zoom button by its percentage text content
|
|
const zoomButton = comfyPage.page.locator('button').filter({
|
|
hasText: '%'
|
|
})
|
|
await expect(zoomButton).toBeVisible()
|
|
|
|
// Click to open zoom controls
|
|
await zoomButton.click()
|
|
await comfyPage.nextFrame()
|
|
|
|
// Zoom controls modal should be visible
|
|
const zoomModal = comfyPage.page
|
|
.locator('div')
|
|
.filter({
|
|
hasText: 'Zoom To Fit'
|
|
})
|
|
.first()
|
|
await expect(zoomModal).toBeVisible()
|
|
|
|
// Click backdrop to close
|
|
const backdrop = comfyPage.page.locator('.fixed.inset-0').first()
|
|
await backdrop.click()
|
|
await comfyPage.nextFrame()
|
|
|
|
// Modal should be hidden
|
|
await expect(zoomModal).not.toBeVisible()
|
|
})
|
|
})
|