babylonlabs-io / babylonlabs-io/babylon-toolkit
Vaults and Activity block the whole page on a spinner instead of a skeleton
- Dominant language
- TypeScript
- Stars
- 14
- Forks
- 11
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 133
Description
## Context
The Vaults and Activity pages hide their whole content behind a spinning loader while data loads.
## Changes
**Now:** both pages gate the entire list on the same core-ui `Loader` — a continuous 1.4s rotate plus stroke-dash animation with no static fallback (`packages/babylon-core-ui/src/components/Loader/Loader.tsx`, `Loader.css:24-32`).
- `services/vault/src/components/pages/VaultsPage.tsx:163-167`
- `services/vault/src/components/pages/Activity.tsx:29-31`
**Expected:** a skeleton that keeps the page shape while loading. No `Skeleton` component exists in core-ui today, so this starts with adding one.
**Where:** `VaultsPage.tsx:163-167`, `Activity.tsx:29-31`, plus a new component in `packages/babylon-core-ui`
Out of scope: the inline `` used for per-row pending states (`VaultsActiveSection.tsx:91`, `VaultsLifecycleSections.tsx:257,435,703`) — those mark a single row, not the page.
Related: the Liquidation Analysis loading state is #2418.
Original report
[Slack thread](https://babylonlabsworkspace.slack.com/archives/C07EG11U45A/p1788267860997369)
> UX complaint about the spinner
> I find it really distracting and doesnt add much value IMO
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the loading branches in services/vault/src/components/pages/VaultsPage.tsx:163-167 and Activity.tsx:29-31, then review the existing Loader in packages/babylon-core-ui/src/components/Loader. Add the core-ui Skeleton component and use it to preserve each page’s shape while data loads; leave the per-row loaders unchanged. Done means both pages show skeleton content instead of blocking on the spinner.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100