velxio/frontend/src/pages
David Montero Crespo 99471d0657 feat(news): announce with a toast, open the modal only on request
Entering the editor could stack two overlays: the starter-template
dialog opened on mount, then four seconds later the "What's new" modal
landed on top of it. Two dimmed backdrops over each other, and the
smaller, *less* important surface in front — the z-indexes said it
outright, news 10000 against the starter's 9000.

The delay made it worse rather than gentler. Arriving after the user has
started reading the templates is the most disruptive moment available;
appearing instantly would at least have let them clear it before
engaging.

The rule this restores: a modal is for what BLOCKS, and an announcement
never blocks. News now slides into the corner as a toast that dims
nothing, steals no focus (role="status", polite), and retires by itself.
The full post is one click behind "Read more" — a modal the user asked
for is a categorically different thing from one thrown at them — and
stays reachable from Help ▸ What's new once the toast is gone.

Worth noting the audience argument too: the starter dialog only fires on
a PRISTINE visit, i.e. for someone brand new, and "what's new" is
meaningless without a baseline to compare against. Returning users, the
ones it is actually written for, arrive with a project loaded and never
saw the collision.

Renamed NewsModal → NewsAnnouncer: it is not a modal by default any more,
and leaving the old name would have mislead the next reader.

Strings are new keys under `news.*`, filled in for all nine locales — the
previous modal had "What's new" and "Got it" hardcoded in English.

Toast sits at z-index 8000, deliberately BELOW the starter dialog, so if
the two ever coincide again the blocking task keeps the foreground.
2026-08-10 19:52:55 +02:00
..
EditorPage.tsx feat(news): announce with a toast, open the modal only on request 2026-08-10 19:52:55 +02:00
ExampleDetailPage.tsx fix(examples): example pages re-render when the overlay registers late examples 2026-07-22 21:43:03 +02:00
ExampleEditorPage.tsx fix(examples): direct pro-example URLs no longer hang on Loading example 2026-07-31 04:22:52 +02:00
ExampleLoaderPage.tsx feat(i18n): translate small editor remates + admin internals (Blocks 11+12) 2026-05-09 16:22:16 -03:00
ExamplesPage.tsx fix(examples): example pages re-render when the overlay registers late examples 2026-07-22 21:43:03 +02:00
ProjectByIdPage.tsx feat(library-manifest): per-board manifests + autocomplete 2026-06-07 06:07:48 +02:00