Provides
- Loading indicators (spinner, skeleton)
- Error messages with retry functionality
- Empty state handling for no data scenarios
Use When
- API calls take noticeable time
- API requests fail or return errors
- API returns empty or null data
- Building user-facing frontend interfaces
Instructions
When implementing API-driven UI:
1. Initialize State
loading = trueerror = nulldata = null
2. Execute API Call
On success:
- Store response in
data - Set
loading = false
- Store response in
On failure:
- Store error message in
error - Set
loading = false
- Store error message in
3. Render UI Based on Priority
Always follow this order:
If
loading === true
→ Show loading indicator (spinner or skeleton)Else if
error !== null
→ Show error message
→ Provide retry optionElse if
data is null OR empty
→ Show empty state messageElse
→ Render actual data UI
Standard Flow
if (loading) return <Loader />;
if (error) return <ErrorState message={error} />;
if (!data || data.length === 0) return <EmptyState />;
return <DataView data={data} />;