"use client"; import { useState } from "react"; import { GitPullRequest, Loader2, CheckCircle, ChevronDown, ChevronUp, ExternalLink, } from "lucide-react"; type PullRequestOpenedProps = { status: "loading" | "generating" | "done"; title?: string; description?: string; url?: string; prNumber?: number; branch?: string; targetBranch?: string; }; export function PullRequestOpened({ status, title, description, url, prNumber, branch, targetBranch = "main", }: PullRequestOpenedProps) { const [expanded, setExpanded] = useState(false); const getStatusIcon = () => { switch (status) { case "loading": return (
); case "generating": return ( ); case "done": return ; } }; const getStatusText = () => { switch (status) { case "loading": return "Preparing pull request..."; case "generating": return "Opening pull request..."; case "done": return prNumber ? `Pull request #${prNumber} opened` : "Pull request opened"; } }; const shouldShowToggle = () => { return status === "done" && description; }; return (
{title && status === "done" && (
{title}
)} {branch && status === "done" && (
{branch} → {targetBranch}
)} {!title && ( {getStatusText()} )}
{getStatusText()} {getStatusIcon()} {url && status === "done" && ( )} {shouldShowToggle() && ( )}
{expanded && description && status === "done" && (

Description

{description}
)}
); }