diff --git a/web/RootLocationBlock.tsx b/web/RootLocationBlock.tsx index 04e702d..74cd065 100644 --- a/web/RootLocationBlock.tsx +++ b/web/RootLocationBlock.tsx @@ -193,11 +193,19 @@ export const RootLocationBlock = () => { return shell(
Only the owner can change where the site lives.
); } - // Both, not either. Rendering on the path alone puts the block on screen before it knows whether it - // is finished, which is the flicker this was all for. - if (!saved || !summary) { - return shell(Loading…
); - } + /* + Both, not either — rendering on the path alone puts the block on screen before it knows whether it + is finished, which is the flicker this was all for. + + And it renders the HEADER, with nothing in it. Not a "Loading…" row: that is a line of text which + then gets replaced by a different line of text, which is a flicker in its own right and was the one + left over after the last fix. The title and the hint are constants and can paint immediately; what + waits for data is the check on the right and whatever body turns out to be needed. + + So the settled case — which is nearly every load — goes from header to header-plus-check, and + nothing moves at all. + */ + if (!saved || !summary) return shell(null); const dirty = value.trim() !== saved.rootPath;