From 037256401fb652b5127f7d71c6707b29e867c2be Mon Sep 17 00:00:00 2001 From: paul-nothaft <40865108-paul-nothaft@users.noreply.replit.com> Date: Fri, 24 Oct 2025 07:45:11 +0000 Subject: [PATCH] Add quick ways to complete and delete tasks Implement a checkbox for marking tasks as done and a delete button directly on the TaskCard component, enhancing user interaction. Replit-Commit-Author: Agent Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518 Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/nn5bWKE --- .replit | 4 ++ client/src/components/TaskCard.tsx | 71 ++++++++++++++++++++---------- 2 files changed, 51 insertions(+), 24 deletions(-) diff --git a/.replit b/.replit index a572720..f009312 100644 --- a/.replit +++ b/.replit @@ -14,6 +14,10 @@ run = ["npm", "run", "start"] localPort = 5000 externalPort = 80 +[[ports]] +localPort = 33679 +externalPort = 4200 + [[ports]] localPort = 35345 externalPort = 3002 diff --git a/client/src/components/TaskCard.tsx b/client/src/components/TaskCard.tsx index 86f3039..231dbcd 100644 --- a/client/src/components/TaskCard.tsx +++ b/client/src/components/TaskCard.tsx @@ -9,9 +9,10 @@ import { DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; -import { Clock, Calendar, Play, Pause, MoreHorizontal, Edit, Trash2, Timer, CheckCircle } from "lucide-react"; +import { Clock, Calendar, Play, Pause, MoreHorizontal, Edit, Trash2, Timer, CheckCircle, X } from "lucide-react"; import { Task, Label } from '@shared/schema'; import { useQuery } from '@tanstack/react-query'; +import { Checkbox } from "@/components/ui/checkbox"; interface TaskCardProps { task: Task; @@ -74,25 +75,44 @@ export default function TaskCard({ task, onStartTimer, onStopTimer, onEdit, onDe return `${hours}h ${mins}m`; }; + const handleToggleComplete = (e: React.MouseEvent) => { + e.stopPropagation(); + if (task.status === 'done') { + onStatusChange?.('todo'); + } else { + onStatusChange?.('done'); + } + }; + return ( { - onEdit?.(); - console.log(`Task card clicked: ${task.title}`); - }} > -
-
-

+
+ {/* Checkbox for quick completion */} + + +
{ + onEdit?.(); + console.log(`Task card clicked: ${task.title}`); + }} + > +

{task.title}

{task.description && ( @@ -142,7 +162,23 @@ export default function TaskCard({ task, onStartTimer, onStopTimer, onEdit, onDe )}
-
+
+ {/* Quick delete button */} + {onDelete && ( + + )} +