2026-05-16 19:17:34 +07:00
|
|
|
import type { MessageRecord } from "../../types/messages";
|
|
|
|
|
import { ScrollArea } from "../ui/scroll-area";
|
2026-05-14 21:01:57 +07:00
|
|
|
import { MessageCard } from "./MessageCard";
|
|
|
|
|
|
|
|
|
|
export interface MessageFeedProps {
|
|
|
|
|
messages: MessageRecord[];
|
|
|
|
|
onReanalyze: (id: string) => void;
|
2026-05-16 19:17:34 +07:00
|
|
|
emptyText?: string;
|
2026-05-14 21:01:57 +07:00
|
|
|
}
|
|
|
|
|
|
2026-05-16 19:17:34 +07:00
|
|
|
export function MessageFeed({ messages, onReanalyze, emptyText = "No messages found." }: MessageFeedProps) {
|
2026-05-14 21:01:57 +07:00
|
|
|
if (messages.length === 0) {
|
2026-05-16 19:17:34 +07:00
|
|
|
return <div className="rounded-2xl border border-dashed border-border p-10 text-center text-sm text-muted-foreground">{emptyText}</div>;
|
2026-05-14 21:01:57 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
2026-05-16 19:17:34 +07:00
|
|
|
<ScrollArea className="h-[calc(100vh-260px)] pr-3">
|
|
|
|
|
<div className="space-y-3">
|
|
|
|
|
{messages.map((message) => (
|
|
|
|
|
<MessageCard key={message.id} message={message} onReanalyze={onReanalyze} />
|
|
|
|
|
))}
|
|
|
|
|
</div>
|
|
|
|
|
</ScrollArea>
|
2026-05-14 21:01:57 +07:00
|
|
|
);
|
|
|
|
|
}
|