"use client";
import "../app/globals.css";
import { useState } from "react";
import {
CheckCircle,
Loader2,
ChevronDown,
ChevronUp,
MessageSquare,
FileText,
} from "lucide-react";
type TaskSummaryProps = {
status: "loading" | "generating" | "done";
summary?: string;
reasoningText?: string;
summaryText?: string;
};
export function TaskSummary({
status,
summary,
reasoningText,
summaryText,
}: TaskSummaryProps) {
const [expanded, setExpanded] = useState(false);
const [showReasoning, setShowReasoning] = useState(false);
const [showSummary, setShowSummary] = useState(false);
const getStatusIcon = () => {
switch (status) {
case "loading":
return (
);
case "generating":
return ;
case "done":
return ;
}
};
const getStatusText = () => {
switch (status) {
case "loading":
return "Preparing task summary...";
case "generating":
return "Generating summary...";
case "done":
return "Task completed";
}
};
return (
{reasoningText && (
{showReasoning && (
{reasoningText}
)}
)}
setExpanded(!expanded)
: undefined
}
>
{getStatusIcon()}
{getStatusText()}
{status === "done" && summary && (
)}
{expanded && summary && status === "done" && (
)}
{summaryText && status === "done" && (
{showSummary && (
{summaryText}
)}
)}
);
}