feat: add functionality to copy task details as Claude Code prompt
This commit is contained in:
parent
b782511ee9
commit
0605c7b908
|
|
@ -22,6 +22,7 @@ import {
|
|||
RefreshCcw,
|
||||
Settings,
|
||||
ShieldCheck,
|
||||
Terminal,
|
||||
X,
|
||||
} from "lucide-react";
|
||||
|
||||
|
|
@ -2545,6 +2546,33 @@ export default function BoardDetailPage() {
|
|||
};
|
||||
}, [commentIdFromUrl, comments, isDetailOpen]);
|
||||
|
||||
const handleDispatchToClaudeCode = useCallback(async () => {
|
||||
if (!selectedTask) return;
|
||||
const boardName = board?.name ?? "Unknown board";
|
||||
const parts: string[] = [
|
||||
`You have been assigned a task from Pipeline.\n`,
|
||||
`**Task**: ${selectedTask.title}`,
|
||||
`**Board**: ${boardName}`,
|
||||
`**Status**: ${selectedTask.status}`,
|
||||
`**Priority**: ${selectedTask.priority}`,
|
||||
];
|
||||
if (selectedTask.due_at) {
|
||||
parts.push(`**Due**: ${new Date(selectedTask.due_at).toLocaleDateString()}`);
|
||||
}
|
||||
if (selectedTask.description?.trim()) {
|
||||
parts.push(`\n**Description**:\n${selectedTask.description.trim()}`);
|
||||
}
|
||||
parts.push(`\n---\nPlease review this task and begin working on it.`);
|
||||
parts.push(`Task ID: ${selectedTask.id}`);
|
||||
const prompt = parts.join("\n");
|
||||
try {
|
||||
await navigator.clipboard.writeText(prompt);
|
||||
pushToast("Task copied — paste into Claude Code in VSCode to dispatch.", "success");
|
||||
} catch {
|
||||
pushToast("Failed to copy to clipboard.", "error");
|
||||
}
|
||||
}, [selectedTask, board, pushToast]);
|
||||
|
||||
const closeComments = () => {
|
||||
openedTaskIdFromUrlRef.current = null;
|
||||
if (searchParams.get("taskId") || searchParams.get("commentId")) {
|
||||
|
|
@ -3710,6 +3738,15 @@ export default function BoardDetailPage() {
|
|||
</p>
|
||||
</div>
|
||||
<div className="flex items-center gap-2">
|
||||
<button
|
||||
type="button"
|
||||
onClick={handleDispatchToClaudeCode}
|
||||
className="rounded-lg border border-border p-2 text-muted-foreground transition hover:bg-muted disabled:opacity-40"
|
||||
disabled={!selectedTask}
|
||||
title="Copy task as Claude Code prompt"
|
||||
>
|
||||
<Terminal className="h-4 w-4" />
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setIsEditDialogOpen(true)}
|
||||
|
|
|
|||
Loading…
Reference in New Issue