Skip to content

🚧(frontend) Improve present mode#2479

Draft
PanchoutNathan wants to merge 15 commits into
mainfrom
improve/present-mode
Draft

🚧(frontend) Improve present mode#2479
PanchoutNathan wants to merge 15 commits into
mainfrom
improve/present-mode

Conversation

@PanchoutNathan

Copy link
Copy Markdown
Contributor

wip

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
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
wrapMediaWithLink / wrapInterlinksWithAnchor defaulted to document.
Accept a root node so the presenter export can reuse them on its
off-screen tree.
Show a monochrome Docs logo in the slide corner (web and PDF) to signal
the document was made with Docs.

Closes #2472
Render the slides off-screen as A4 landscape pages and print them via
the browser, one slide per page with the watermark. Add a "Download PDF"
action to the floating bar.

Closes #2446
Add a "Present" item to the block side menu that opens the presenter on
the slide containing that block. Map any block id (incl. nested or
divider ids) to its rendered content slide.

Closes #2470
When a document has no divider, show a dismissible hint on the title
slide explaining that /Divider splits slides.

Closes #2475
Cover splitBlocksIntoSlides (divider children, empty-paragraph
trimming), getContentSlideIndexForBlock and hasDividerBlock for the
present-mode work (#2466).
Exercise the title slide, image focus, deep-links and copy link, PDF
export, present-from-block and the divider hint end to end (#2466).
@PanchoutNathan PanchoutNathan self-assigned this Jun 30, 2026
@PanchoutNathan PanchoutNathan marked this pull request as draft June 30, 2026 14:23
@lunika lunika added the preview label Jun 30, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Preview will be available at https://2479-docs.ppr-docs.beta.numerique.gouv.fr/

You can use the existing account with these credentials:

  • username: docs
  • password: docs

You can also create a new account if you want to.

Once this Pull Request is merged, the preview will be destroyed.

@github-actions

Copy link
Copy Markdown
Contributor

Size Change: +7.97 kB (+0.18%)

Total Size: 4.35 MB

📦 View Changed
Filename Size Change
apps/impress/out/_next/static/260f4c3a/_buildManifest.js 676 B +676 B (new file) 🆕
apps/impress/out/_next/static/9282dc3a/_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/2300.js 24.1 kB +24.1 kB (new file) 🆕
apps/impress/out/_next/static/chunks/5149.js 0 B -23.1 kB (removed) 🏆
apps/impress/out/_next/static/chunks/5815.js 0 B -3.95 kB (removed) 🏆
apps/impress/out/_next/static/chunks/7338.js 8.82 kB +8.82 kB (new file) 🆕
apps/impress/out/_next/static/chunks/a52a7088.js 1.44 kB +776 B (+116.34%) 🆘
apps/impress/out/_next/static/chunks/pages/docs/[id].js 3.61 kB +526 B (+17.06%) ⚠️

compressed-size-action

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants