diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts
index 824d7a85ea..05faa13834 100644
--- a/src/core/webview/ClineProvider.ts
+++ b/src/core/webview/ClineProvider.ts
@@ -2309,16 +2309,6 @@ export class ClineProvider implements vscode.WebviewViewProvider {
}
async deleteTaskWithId(id: string) {
- const answer = await vscode.window.showInformationMessage(
- "Are you sure you want to delete this task? This action cannot be undone.",
- { modal: true },
- "Delete",
- )
-
- if (answer !== "Delete") {
- return
- }
-
if (id === this.cline?.taskId) {
await this.clearTask()
}
diff --git a/webview-ui/src/components/history/DeleteTaskDialog.tsx b/webview-ui/src/components/history/DeleteTaskDialog.tsx
new file mode 100644
index 0000000000..b40adeae3d
--- /dev/null
+++ b/webview-ui/src/components/history/DeleteTaskDialog.tsx
@@ -0,0 +1,49 @@
+import React from "react"
+import {
+ AlertDialog,
+ AlertDialogAction,
+ AlertDialogCancel,
+ AlertDialogContent,
+ AlertDialogDescription,
+ AlertDialogFooter,
+ AlertDialogHeader,
+ AlertDialogTitle,
+} from "@/components/ui/alert-dialog"
+import { Button } from "@/components/ui"
+import { vscode } from "@/utils/vscode"
+
+interface DeleteTaskDialogProps {
+ taskId: string
+ open: boolean
+ onOpenChange: (open: boolean) => void
+}
+
+export const DeleteTaskDialog = ({ taskId, open, onOpenChange }: DeleteTaskDialogProps) => {
+ const handleDelete = () => {
+ vscode.postMessage({ type: "deleteTaskWithId", text: taskId })
+ onOpenChange(false)
+ }
+
+ return (
+
+
+
+ Delete Task
+
+ Are you sure you want to delete this task? This action cannot be undone.
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/webview-ui/src/components/history/HistoryView.tsx b/webview-ui/src/components/history/HistoryView.tsx
index 38ca14df46..ca60e1fcb8 100644
--- a/webview-ui/src/components/history/HistoryView.tsx
+++ b/webview-ui/src/components/history/HistoryView.tsx
@@ -1,4 +1,5 @@
import React, { memo, useMemo, useState, useEffect } from "react"
+import { DeleteTaskDialog } from "./DeleteTaskDialog"
import { Fzf } from "fzf"
import prettyBytes from "pretty-bytes"
import { Virtuoso } from "react-virtuoso"
@@ -37,8 +38,12 @@ const HistoryView = ({ onDone }: HistoryViewProps) => {
vscode.postMessage({ type: "showTaskWithId", text: id })
}
+ const [deleteDialogOpen, setDeleteDialogOpen] = useState(false)
+ const [taskToDelete, setTaskToDelete] = useState(null)
+
const handleDeleteHistoryItem = (id: string) => {
- vscode.postMessage({ type: "deleteTaskWithId", text: id })
+ setTaskToDelete(id)
+ setDeleteDialogOpen(true)
}
const formatDate = (timestamp: number) => {
@@ -398,6 +403,18 @@ const HistoryView = ({ onDone }: HistoryViewProps) => {
)}
/>
+ {taskToDelete && (
+ {
+ setDeleteDialogOpen(open)
+ if (!open) {
+ setTaskToDelete(null)
+ }
+ }}
+ />
+ )}
)
}