-
Notifications
You must be signed in to change notification settings - Fork 75
Expand file tree
/
Copy pathMessageSkeleton.tsx
More file actions
102 lines (96 loc) · 4.43 KB
/
Copy pathMessageSkeleton.tsx
File metadata and controls
102 lines (96 loc) · 4.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
export function MessageSkeleton() {
return (
<div className="flex flex-col space-y-2 p-2 overflow-x-hidden">
{/* User message skeleton */}
<div className="flex flex-col">
<div className="w-full rounded-lg border border-primary/25 bg-primary/10 p-1.5">
<div className="flex items-center gap-2 mb-1">
<div className="h-3 w-12 bg-muted animate-pulse rounded" />
<div className="h-3 w-16 bg-muted animate-pulse rounded" />
</div>
<div className="space-y-2">
<div className="h-4 bg-muted animate-pulse rounded w-3/4" />
<div className="h-4 bg-muted animate-pulse rounded w-1/2" />
</div>
</div>
</div>
{/* Assistant message skeleton */}
<div className="flex flex-col">
<div className="w-full rounded-lg p-1.5 bg-card/50 border border-border">
<div className="flex items-center gap-2 mb-1">
<div className="h-3 w-16 bg-muted animate-pulse rounded" />
<div className="h-3 w-16 bg-muted animate-pulse rounded" />
<div className="flex items-center gap-1">
<div className="h-3 w-20 rounded bg-primary/12 animate-pulse" />
</div>
</div>
<div className="space-y-2">
<div className="h-4 bg-muted animate-pulse rounded w-full" />
<div className="h-4 bg-muted animate-pulse rounded w-5/6" />
<div className="h-4 bg-muted animate-pulse rounded w-2/3" />
<div className="h-20 bg-muted/50 animate-pulse rounded mt-3" />
</div>
</div>
</div>
<div className="flex flex-col">
<div className="w-full rounded-lg border border-primary/25 bg-primary/10 p-1.5">
<div className="flex items-center gap-2 mb-1">
<div className="h-3 w-12 bg-muted animate-pulse rounded" />
<div className="h-3 w-16 bg-muted animate-pulse rounded" />
</div>
<div className="space-y-2">
<div className="h-4 bg-muted animate-pulse rounded w-3/4" />
<div className="h-4 bg-muted animate-pulse rounded w-1/2" />
</div>
</div>
</div>
{/* Assistant message skeleton */}
<div className="flex flex-col">
<div className="w-full rounded-lg p-1.5 bg-card/50 border border-border">
<div className="flex items-center gap-2 mb-1">
<div className="h-3 w-16 bg-muted animate-pulse rounded" />
<div className="h-3 w-16 bg-muted animate-pulse rounded" />
<div className="flex items-center gap-1">
<div className="h-3 w-20 rounded bg-primary/12 animate-pulse" />
</div>
</div>
<div className="space-y-2">
<div className="h-4 bg-muted animate-pulse rounded w-full" />
<div className="h-4 bg-muted animate-pulse rounded w-5/6" />
<div className="h-4 bg-muted animate-pulse rounded w-2/3" />
<div className="h-20 bg-muted/50 animate-pulse rounded mt-3" />
</div>
</div>
</div>
{/* Second user message skeleton */}
<div className="flex flex-col">
<div className="w-full rounded-lg border border-primary/25 bg-primary/10 p-1.5">
<div className="flex items-center gap-2 mb-1">
<div className="h-3 w-12 bg-muted animate-pulse rounded" />
<div className="h-3 w-16 bg-muted animate-pulse rounded" />
</div>
<div className="space-y-2">
<div className="h-4 bg-muted animate-pulse rounded w-4/5" />
</div>
</div>
</div>
{/* Loading assistant message */}
<div className="flex flex-col">
<div className="w-full rounded-lg p-1.5 bg-card/50 border border-border animate-pulse-subtle">
<div className="flex items-center gap-2 mb-1">
<div className="h-3 w-16 bg-muted animate-pulse rounded" />
<div className="h-3 w-16 bg-muted animate-pulse rounded" />
<div className="flex items-center gap-1">
<span className="animate-pulse">●</span>
<div className="h-3 w-24 rounded bg-primary/12 animate-pulse" />
</div>
</div>
<div className="flex items-center gap-2 text-muted-foreground">
<span className="animate-pulse">▋</span>
<div className="h-4 w-20 bg-muted animate-pulse rounded" />
</div>
</div>
</div>
</div>
);
}