docv/app/dashboard/chat/loading.tsx
Sadrinho27 aedd3b9f10
Some checks failed
4NK Template Sync / check-and-sync (push) Failing after 1s
first commit
2025-09-29 16:57:49 +02:00

80 lines
2.9 KiB
TypeScript

import { Skeleton } from "@/components/ui/skeleton"
export default function ChatLoading() {
return (
<div className="h-[calc(100vh-8rem)] flex">
{/* Sidebar */}
<div className="w-80 border-r bg-white flex flex-col">
<div className="p-4 border-b">
<div className="flex items-center justify-between mb-4">
<Skeleton className="h-6 w-24" />
<Skeleton className="h-8 w-8" />
</div>
<Skeleton className="h-10 w-full" />
</div>
<div className="flex-1 overflow-y-auto">
{[...Array(5)].map((_, i) => (
<div key={i} className="p-4 border-b">
<div className="flex items-start space-x-3">
<Skeleton className="h-12 w-12 rounded-full" />
<div className="flex-1">
<div className="flex items-center justify-between">
<Skeleton className="h-4 w-24" />
<Skeleton className="h-3 w-12" />
</div>
<Skeleton className="h-3 w-32 mt-2" />
<Skeleton className="h-3 w-16 mt-1" />
</div>
</div>
</div>
))}
</div>
</div>
{/* Main Chat Area */}
<div className="flex-1 flex flex-col">
{/* Header */}
<div className="p-4 border-b bg-white">
<div className="flex items-center justify-between">
<div className="flex items-center space-x-3">
<Skeleton className="h-10 w-10 rounded-full" />
<div>
<Skeleton className="h-4 w-32" />
<Skeleton className="h-3 w-20 mt-1" />
</div>
</div>
<div className="flex items-center space-x-2">
<Skeleton className="h-8 w-8" />
<Skeleton className="h-8 w-8" />
<Skeleton className="h-8 w-8" />
</div>
</div>
</div>
{/* Messages */}
<div className="flex-1 overflow-y-auto p-4 space-y-4 bg-gray-50">
{[...Array(6)].map((_, i) => (
<div key={i} className={`flex ${i % 2 === 0 ? "justify-start" : "justify-end"}`}>
<div className={`max-w-xs lg:max-w-md p-4 rounded-lg ${i % 2 === 0 ? "bg-white" : "bg-blue-600"}`}>
<Skeleton className={`h-4 w-48 ${i % 2 !== 0 ? "bg-blue-500" : ""}`} />
<Skeleton className={`h-3 w-16 mt-2 ${i % 2 !== 0 ? "bg-blue-500" : ""}`} />
</div>
</div>
))}
</div>
{/* Input */}
<div className="p-4 border-t bg-white">
<div className="flex items-end space-x-2">
<Skeleton className="h-8 w-8" />
<Skeleton className="h-20 flex-1" />
<Skeleton className="h-8 w-8" />
<Skeleton className="h-8 w-16" />
</div>
</div>
</div>
</div>
)
}