import { useEffect, useRef } from "react"; import { ScrollArea } from "@/components/ui/scroll-area"; import { Bot, User } from "lucide-react"; import { cn } from "@/lib/utils"; import type { TranscriptMessage } from "@shared/schema"; interface LiveTranscriptProps { messages: TranscriptMessage[]; className?: string; } export function LiveTranscript({ messages, className }: LiveTranscriptProps) { const scrollRef = useRef(null); useEffect(() => { if (scrollRef.current) { scrollRef.current.scrollTop = scrollRef.current.scrollHeight; } }, [messages]); const formatTime = (date: Date | string): string => { const d = new Date(date); return d.toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit", second: "2-digit" }); }; return (

Live Transcript

{messages.length} messages
{messages.length === 0 && (
Waiting for conversation to start...
)} {messages.map((message) => (
{message.speaker === "ai" ? (
{message.speaker === "ai" ? "AI Agent" : "Customer"} {formatTime(message.timestamp)}
{message.content}
))}
); }