Task: Empty State Component
Type: Component
Milestone: M0.5 — Shared Component Library
Estimate: S
Component Type
Props Interface
interface EmptyStateProps {
icon?: ReactNode; // illustration or emoji
title: string;
description?: string;
action?: {
label: string;
onClick: () => void;
};
className?: string;
}
Variants / States
| State |
Description |
Used in |
| Queue empty |
"Queue is clear" + checkmark |
ModerationQueue with no reports |
| Filter empty |
"No reports match this filter" + clear filter CTA |
Filtered queue with 0 results |
| User list empty |
"No users found" |
UserManagement |
| Analytics no data |
"Not enough data yet" |
Analytics charts with no history |
Acceptance Criteria
Task: Empty State Component
Type: Component
Milestone: M0.5 — Shared Component Library
Estimate: S
Component Type
Props Interface
Variants / States
ModerationQueuewith no reportsUserManagementAnalyticscharts with no historyAcceptance Criteria
actionbutton renders only when provided — uses sharedButtoncomponentdescriptionis optional — layout doesn't break when absent