import { useState } from "react"; import { cn } from "~/lib/utils"; import { Badge } from "../ui/badge"; import { type LogItem } from "~/hooks/use-logs"; import { LogOptions } from "./log-options"; import { LogDetails } from "./log-details"; interface LogTextCollapseProps { text?: string; error?: string; logData: any; log: LogItem; id: string; reset?: () => void; } const getStatusColor = (status: string) => { switch (status) { case "PROCESSING": return "bg-blue-100 text-blue-800 hover:bg-blue-100 hover:text-blue-800"; case "PENDING": return "bg-yellow-100 text-yellow-800 hover:bg-yellow-100 hover:text-yellow-800"; case "COMPLETED": return "bg-success/10 text-success hover:bg-success/10 hover:text-success"; case "FAILED": return "bg-destructive/10 text-destructive hover:bg-destructive/10 hover:text-destructive"; case "CANCELLED": return "bg-gray-100 text-gray-800 hover:bg-gray-100 hover:text-gray-800"; default: return "bg-gray-100 text-gray-800 hover:bg-gray-100 hover:text-gray-800"; } }; export function LogTextCollapse({ text, error, id, log, }: LogTextCollapseProps) { const [dialogOpen, setDialogOpen] = useState(false); // Show collapse if text is long (by word count) const COLLAPSE_WORD_LIMIT = 30; if (!text) { return (