You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: standardize empty states and loading skeletons (#1294)
* feat: add compact mode to EmptyState and emptyState prop to DataTable
- Add compact prop to EmptyState for inline/table usage (smaller icon, reduced height)
- Add emptyState prop to DataTable for custom per-table empty state content
* feat: add shared DetailSkeleton component for detail page loading states
Reusable skeleton that renders back-nav, title, stats grid, and tab bar
placeholders, reducing per-page boilerplate for loading states.
* feat: apply standardized loading skeletons to detail pages
- TenantDetailPage: replace single-div skeleton with DetailSkeleton
- ReconciliationDetailPage: replace minimal skeletons with DetailSkeleton
- MappingDetailPage: replace thin card skeleton with DetailSkeleton
- DatasetDetailPage: add header skeleton while dataset loads
- PositionDetailPage: replace per-field inline skeletons with Skeleton component
* fix: clamp fieldCount and tabCount in DetailSkeleton to prevent crashes
Negative or non-integer prop values could crash Array.from rendering.
Use Math.max(0, Math.floor(...)) for defensive normalization.
---------
Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
0 commit comments