feat(ListView): add ListViewSkeleton component#3330
Open
rzp-vyom[bot] wants to merge 1 commit intomasterfrom
Open
feat(ListView): add ListViewSkeleton component#3330rzp-vyom[bot] wants to merge 1 commit intomasterfrom
rzp-vyom[bot] wants to merge 1 commit intomasterfrom
Conversation
Adds `ListViewSkeleton` — a shimmer placeholder that mirrors the full
ListView layout so every list view has a consistent, first-class loading
state without needing spinners or ad-hoc skeletons.
Layout mirrors:
1. QuickFilter tab pills (4 pill-shaped skeletons)
2. Search / action area (rectangular skeleton, right-aligned)
3. Table header row (one skeleton per column)
4. Table body rows (configurable via `rows` prop, cell widths
vary to look like real data)
5. Pagination bar (3 skeletons, bottom-right)
API:
rows — body row count (default: 7)
columns — column count (default: 5)
showFilters — toggle filter bar skeleton (default: true)
showPagination — toggle pagination skeleton (default: true)
Usage:
if (isLoading) return <ListViewSkeleton rows={7} columns={5} />;
return <ListView>...</ListView>;
Changes:
- packages/blade/src/components/ListView/ListViewSkeleton.tsx (new)
- packages/blade/src/components/ListView/__tests__/ListViewSkeleton.web.test.tsx (new, 13 tests + 2 snapshots)
- packages/blade/src/components/ListView/index.ts (export ListViewSkeleton)
- packages/blade/src/components/ListView/docs/ListView.stories.tsx (4 new stories)
No new dependencies. Built on existing Skeleton + Box primitives.
export * from './ListView' in components/index.ts already covers this.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
|
✅ PR title follows Conventional Commits specification. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
ListViewSkeleton— a shimmer placeholder that mirrors the fullListViewlayout so every list view has a consistent, first-class loading state without needing spinners or ad-hoc custom skeletons.Discussed in the Blade Slack thread — agreed to implement standard skeleton loading for list views, without RazorSense animation (tried but looked odd).
What it renders
70% / 75% / 50%) to look like real dataAPI
Usage
Files changed
src/components/ListView/ListViewSkeleton.tsxsrc/components/ListView/__tests__/ListViewSkeleton.web.test.tsxsrc/components/ListView/index.tsListViewSkeleton+ListViewSkeletonPropssrc/components/ListView/docs/ListView.stories.tsxexport * from './ListView'incomponents/index.tsalready covers the new export — no separate change needed there.Test coverage
rowsprop renders correct count (tested: 1, 3, 5, 7)showFilterstoggles filter barshowPaginationtoggles pagination barNotes
Skeleton+BoxprimitivestestIDon every structural section for easy product-side test targetingStorybook preview
Chromatic will generate a preview link once CI passes. Stories to look for:
Patterns/ListView — Skeleton — DefaultPatterns/ListView — Skeleton — Table OnlyPatterns/ListView — Skeleton — Many Columns (6)Patterns/ListView — Skeleton → ListView transition (reload to replay)🤖 Generated with Claude Code