From 2d0f3d6a557c7cc50ebc04dfae0e9d4115fd89dc Mon Sep 17 00:00:00 2001 From: Alexander Brown Date: Wed, 21 Jan 2026 19:57:12 -0800 Subject: [PATCH] [backport cloud/1.37] refactor: restructure BaseModalLayout from flexbox to CSS Grid (#8239) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backport of #8211 to `cloud/1.37`. Cherry-picked merge commit `2db246f494b42bb65bd034571c2388b8d6c7e11f`. **Resolved conflicts:** - `src/components/widget/layout/BaseModalLayout.vue` - Accepted PR version (complete refactor from flexbox to CSS Grid) ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8239-backport-cloud-1-37-refactor-restructure-BaseModalLayout-from-flexbox-to-CSS-Grid-2f06d73d365081b3bf60f558ceced8c5) by [Unito](https://www.unito.io) Co-authored-by: Amp --- browser_tests/tests/templates.spec.ts | 7 +- .../widget/layout/BaseModalLayout.vue | 282 ++++++++++-------- src/locales/en/main.json | 5 + 3 files changed, 164 insertions(+), 130 deletions(-) diff --git a/browser_tests/tests/templates.spec.ts b/browser_tests/tests/templates.spec.ts index 977f3f6df..ae7e3747d 100644 --- a/browser_tests/tests/templates.spec.ts +++ b/browser_tests/tests/templates.spec.ts @@ -189,9 +189,7 @@ test.describe('Templates', () => { const templateGrid = comfyPage.page.locator( '[data-testid="template-workflows-content"]' ) - const nav = comfyPage.page - .locator('header') - .filter({ hasText: 'Templates' }) + const nav = comfyPage.page.locator('header', { hasText: 'Templates' }) await comfyPage.templates.waitForMinimumCardCount(1) await expect(templateGrid).toBeVisible() @@ -201,7 +199,8 @@ test.describe('Templates', () => { await comfyPage.page.setViewportSize(mobileSize) await comfyPage.templates.waitForMinimumCardCount(1) await expect(templateGrid).toBeVisible() - await expect(nav).not.toBeVisible() // Nav should collapse at mobile size + // Nav header is clipped by overflow-hidden parent at mobile size + await expect(nav).not.toBeInViewport() const tabletSize = { width: 1024, height: 800 } await comfyPage.page.setViewportSize(tabletSize) diff --git a/src/components/widget/layout/BaseModalLayout.vue b/src/components/widget/layout/BaseModalLayout.vue index 325ca0ac6..148ea3ccd 100644 --- a/src/components/widget/layout/BaseModalLayout.vue +++ b/src/components/widget/layout/BaseModalLayout.vue @@ -1,100 +1,128 @@ @@ -102,34 +130,37 @@ diff --git a/src/locales/en/main.json b/src/locales/en/main.json index 4aa596609..ea5284eb2 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -100,6 +100,11 @@ "no": "No", "cancel": "Cancel", "close": "Close", + "closeDialog": "Close dialog", + "showLeftPanel": "Show left panel", + "hideLeftPanel": "Hide left panel", + "showRightPanel": "Show right panel", + "hideRightPanel": "Hide right panel", "or": "or", "pressKeysForNewBinding": "Press keys for new binding", "defaultBanner": "default banner",