One loading screen instead of four, all on the full logo

Refactorkamo-internal
Shipped
August 15, 2026 at 2:15 PM UTC
Author
kamo
Commit
9fab01b

There were four copies of the same full-screen loading markup — the navigation screen, both of /validate's pre-result screens, and /logout — identical down to the blur radius and the spinner's ring widths. They had already drifted: the navigation one rendered the SIMPLE logo while the other three rendered the full one, so which mark you saw depended on which transition you happened to be in. That is exactly the failure four copies produce, and it is why the overlay added last week only ever reached one of them. LoadingScreen owns the shell, the logo and the spinner now. The logo is logoFull everywhere, and it honours the org's Loading Screen Logo Overlay on all four screens rather than one. Callers pass only what actually differs: their message, and whether the spinner and dots belong there. /logout's failure state is a `tone` rather than a pile of ternaries. Its red gradient, missing glow and absent spinner were three independent conditionals expressing one idea, and a spinner under an error message says the opposite of the message above it. Two things deliberately left alone: /validate's success/error result screen is a different design serving a different purpose — brand or red gradient, smaller logo, no spinner — and is not a loading screen; and the alt text stays the constant "KamoCRM", which is what LoadingWithOrg was always returning. It is a constant on purpose, because these screens render on both sides of a navigation and an org-dependent string here is a hydration error on every page change. Net 637 lines removed.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing