Skip to content

✨(frontend) Open and share presenter slide links#2484

Draft
PanchoutNathan wants to merge 10 commits into
mainfrom
feature/present-mode-share-link
Draft

✨(frontend) Open and share presenter slide links#2484
PanchoutNathan wants to merge 10 commits into
mainfrom
feature/present-mode-share-link

Conversation

@PanchoutNathan

Copy link
Copy Markdown
Contributor

Purpose

  • Support presenter deep-links with ?view=present&slide=N.
  • Keep the URL in sync with the current presenter slide.
  • Add a "Copy link to slide" action in the presenter controls.
  • Ignore presenter deep-links on mobile viewports.

Refs #2466
Closes #2397

createDoc returned before the ProseMirror editor was visible, so tests
that immediately typed or opened the presenter raced the load. Wait for
the editor container before handing control back.
Move presenter ownership out of DocToolBox into a top-level
PresenterRoot driven by a zustand store, lazy-load the overlay and paint
a boot cover while the editor boots. Groundwork for the deep-link and
present-from-here features (#2466).
Pull the BlockNote rendering out of PresenterSlide into
PresenterSlideContent so it can be reused by the title slide and the PDF
export. Add a PresenterSlideData union (title | content) and a shared
PresenterBlock type.
Prepend a slide with the document title (emoji stripped) so every
presentation opens on a cover, announced to screen readers like any
other slide (#2466).
Dividers with children are kept as structural parents so their slide
keeps its indentation; the divider's own rule is hidden. Empty
paragraphs around a divider are dropped so habitual spacing no longer
offsets slides.

Closes #2398
A selected image (or any selected node) leaked its editing outline into
the read-only slide. Suppress the selected-node outline so nothing looks
focused unless the user tabs or clicks.

Closes #2393
Cover generated title slides, divider grouping, and presenter focus.

Keep e2e coverage aligned with the first present-mode slice.
Slim the divider to a 1px rule with a brand-colored selected state,
matching the mockups.

Closes #2474
Support ?view=present&slide=N deep-links (clamped, URL kept in sync) and
a "Copy link to slide" action in the floating bar. Ignore the deep-link
on mobile.

Closes #2397
Exercise direct present links, copied slide URLs, and mobile behavior.

Keep the e2e slice scoped to the share-link workflow.
@PanchoutNathan PanchoutNathan self-assigned this Jul 1, 2026
@PanchoutNathan PanchoutNathan marked this pull request as draft July 1, 2026 12:19
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Size Change: +2 kB (+0.05%)

Total Size: 4.35 MB

📦 View Changed
Filename Size Change
apps/impress/out/_next/static/ba8c17f8/_buildManifest.js 0 B -676 B (removed) 🏆
apps/impress/out/_next/static/chunks/1440.js 3.98 kB +3.98 kB (new file) 🆕
apps/impress/out/_next/static/chunks/1859.js 0 B -3.2 kB (removed) 🏆
apps/impress/out/_next/static/chunks/3626.js 4.55 kB +4.55 kB (new file) 🆕
apps/impress/out/_next/static/chunks/5815.js 0 B -3.95 kB (removed) 🏆
apps/impress/out/_next/static/chunks/pages/docs/[id].js 3.71 kB +626 B (+20.3%) 🚨
apps/impress/out/_next/static/d7d4ac5b/_buildManifest.js 674 B +674 B (new file) 🆕

compressed-size-action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Link for presentation mode

1 participant