TicketRowSkeleton (D-21): - border-l-4 border-muted stripe + 3 Skeleton lines matching ticket row layout - 5 instances rendered during initial load TicketFilterStrip (D-01 through D-04): - Sticky top-0 container with always-visible search input - Collapsible panel with status chips (Open/In Progress/Waiting), priority chips (Critical/High/Medium/Low), queue Select, and mine Switch - Controlled component — URL sync is parent's responsibility (D-05) - Active filter count badge in Filters button - Clear all button appears only when isFiltered (D-04) - Exports TicketFilterValue and QueueOption interfaces for Plan 02 import
21 lines
680 B
TypeScript
21 lines
680 B
TypeScript
'use client';
|
|
|
|
/* TicketRowSkeleton — phase 04 (TICK-05/D-21).
|
|
* Purpose: skeleton placeholder row that matches the priority-stripe ticket row layout
|
|
* for the initial-load state of /mobile/tickets.
|
|
* Props: none — purely presentational. */
|
|
|
|
import { Skeleton } from '@/components/ui/skeleton';
|
|
|
|
export function TicketRowSkeleton() {
|
|
return (
|
|
<div className="border-l-4 border-muted px-4 py-4">
|
|
<Skeleton className="h-4 w-3/4" />
|
|
<Skeleton className="h-3 w-1/2 mt-1" />
|
|
<div className="flex gap-2 mt-2 items-center">
|
|
<Skeleton className="h-3 w-12" />
|
|
<Skeleton className="h-3 w-16 ml-auto" />
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|