"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}
)}
);
}