Home mosaic, multi-select delete, offline banner and loading states
- Home puts the dashboards beside the flows: two equal-height columns, capped and scrollable, most recently worked on first. Each tile is a schematic footprint built from the stored widget placements. - Flows and dashboards can be picked by long press or ctrl-click; the create button becomes a trash and one dialog covers the batch. - The offline banner is drawn on the body so it centres on the viewport, and the live socket now releases the offline latch a stray 503 set. - A boot spinner before React's first commit, a router pending screen for code-split pages, and skeletons where an empty list used to flash. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018tULRZJUkZsw7rMJ3h4xvu
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import { Loader2 } from "lucide-react"
|
||||
|
||||
/**
|
||||
* The router's pending screen, shown while a page's code chunk is on its way.
|
||||
*
|
||||
* Deliberately only the spinner. The shell around it is already painted — this
|
||||
* fills the content region alone — and the page behind it draws its own
|
||||
* skeletons once its code arrives, so a second guess at that layout here would
|
||||
* only be a shape to correct a moment later.
|
||||
*/
|
||||
export function PageLoading() {
|
||||
return (
|
||||
<output
|
||||
aria-label="Loading"
|
||||
data-testid="page-loading"
|
||||
className="flex min-h-64 items-center justify-center"
|
||||
>
|
||||
<Loader2 className="size-6 animate-spin text-muted-foreground" />
|
||||
</output>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user