diff --git a/apps/web/src/components/PreviewPanel.test.ts b/apps/web/src/components/PreviewPanel.test.ts index 5d0979faf..b37ba678c 100644 --- a/apps/web/src/components/PreviewPanel.test.ts +++ b/apps/web/src/components/PreviewPanel.test.ts @@ -30,6 +30,15 @@ describe("PreviewPanel", () => { expect(hasBlockingPreviewOverlay(root)).toBe(true); }); + it("treats error notifications as blocking overlays", () => { + const root = { + querySelector: (selector: string) => + selector.includes('[data-slot="error-notification-bar"]') ? {} : null, + } as unknown as ParentNode; + + expect(hasBlockingPreviewOverlay(root)).toBe(true); + }); + it("ignores empty overlay containers", () => { const root = { querySelector: () => null, diff --git a/apps/web/src/components/PreviewPanel.tsx b/apps/web/src/components/PreviewPanel.tsx index 339c6f282..f80f180e7 100644 --- a/apps/web/src/components/PreviewPanel.tsx +++ b/apps/web/src/components/PreviewPanel.tsx @@ -71,6 +71,7 @@ const POPUP_POSITIONER_SELECTOR = [ '[data-slot="select-positioner"]', '[data-slot="combobox-positioner"]', '[data-slot="autocomplete-positioner"]', + '[data-slot="error-notification-bar"]', '[data-slot="toast-viewport"]:not(:empty)', '[data-slot="toast-viewport-anchored"]:not(:empty)', '[data-slot="toast-positioner"]:not(:empty)', @@ -445,7 +446,7 @@ export function PreviewPanel({ projectId, threadId, onClose }: PreviewPanelProps const isFavorite = currentPageUrl !== null && favoriteUrls.includes(currentPageUrl); return ( -