🐛(frontend) hide the selection highlight on presenter images

Presenter reset no longer hid selection; image slides appeared focused on open.
This commit is contained in:
Ovgodd
2026-09-09 15:10:06 +02:00
parent d8e5d5e796
commit bcc1eb9faf
3 changed files with 18 additions and 3 deletions
+2 -1
View File
@@ -18,6 +18,7 @@ and this project adheres to
- 🐛(backend) skip session creation for the liveness probe
- 🐛(frontend) preserve page titles when adding an emoji #2586
- 🐛(frontend) hide the selection highlight on presenter images #2665
## [v5.6.1] - 2026-09-04
@@ -57,7 +58,7 @@ and this project adheres to
- 🐛(backend) fix duplicating a document that has no content #2609
- 📄(frontend) allowed partially export when MIT #2551
- 🐛(backend) manage async support for Docs custom middleware #2619
- 🐛(frontend) save the doc with a keepalive
- 🐛(frontend) save the doc with a keepalive
request when leaving the page #2619
- 🐛(frontend) export any raster image supported by the browser to a PDF #2530
@@ -225,7 +225,7 @@ test.describe('Presenter Mode', () => {
const presenterImage = overlay.locator('img.bn-visual-media').first();
await expect(presenterImage).toBeAttached({ timeout: 10000 });
const outline = await presenterImage.evaluate((img) => {
const selectionChrome = await presenterImage.evaluate((img) => {
const blockContent = img.closest('.bn-block-content');
blockContent?.classList.add('ProseMirror-selectednode');
@@ -237,12 +237,16 @@ test.describe('Presenter Mode', () => {
return {
outlineStyle: style.outlineStyle,
outlineWidth: style.outlineWidth,
// BlockNote also paints the selection as an ::after overlay, which
// an outline reset alone leaves visible.
overlayContent: getComputedStyle(outlinedElement, '::after').content,
};
});
expect(outline).toEqual({
expect(selectionChrome).toEqual({
outlineStyle: 'none',
outlineWidth: '0px',
overlayContent: 'none',
});
});
@@ -28,6 +28,16 @@ const slideContentCss = css`
outline: 0 !important;
}
/* BlockNote 0.54 draws the node selection as an ::after overlay
(translucent fill + inset ring), so zeroing the outline above is not
enough to hide it. */
.bn-block-content.ProseMirror-selectednode > *::after,
.ProseMirror-selectednode > .bn-block-content > *::after,
.bn-block-content .ProseMirror-selectednode::after,
.bn-inline-content .ProseMirror-selectednode::after {
content: none !important;
}
.bn-block-content[data-content-type='divider'] {
display: none;
}