"use client"; import { ScrollArea } from "@/components/ui/scroll-area"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Terminal } from "lucide-react"; import { useEffect, useState, useRef } from "react"; interface LogDisplayProps { logs: string[]; isLoading?: boolean; } export function LogDisplay({ logs: initialLogs, isLoading }: LogDisplayProps) { const [logs, setLogs] = useState(initialLogs); const scrollAreaRef = useRef(null); useEffect(() => { setLogs(initialLogs); }, [initialLogs]); useEffect(() => { if (scrollAreaRef.current) { const scrollableViewport = scrollAreaRef.current.querySelector('div[data-radix-scroll-area-viewport]'); if (scrollableViewport) { scrollableViewport.scrollTop = scrollableViewport.scrollHeight; } } }, [logs]); return ( Deployment Logs {isLoading && logs.length === 0 &&

Loading logs...

} {!isLoading && logs.length === 0 &&

No logs to display yet.

} {logs.map((log, index) => (

{log}

))}
); }