From 8945eb6ad67419d9899937a4a9745e362e80cccc Mon Sep 17 00:00:00 2001 From: JSC Date: Sun, 21 Sep 2025 18:48:05 +0200 Subject: [PATCH] feat: remove task update functionality from SchedulersTable and clean up related code --- src/components/schedulers/SchedulersTable.tsx | 66 +++++-------------- src/pages/SchedulersPage.tsx | 6 -- 2 files changed, 15 insertions(+), 57 deletions(-) diff --git a/src/components/schedulers/SchedulersTable.tsx b/src/components/schedulers/SchedulersTable.tsx index c32f9e8..3f22ee3 100644 --- a/src/components/schedulers/SchedulersTable.tsx +++ b/src/components/schedulers/SchedulersTable.tsx @@ -5,7 +5,6 @@ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, - DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { formatDate } from '@/utils/format-date' @@ -20,8 +19,6 @@ import { import { CalendarClock, MoreHorizontal, - Pause, - Play, Square, } from 'lucide-react' import { useState } from 'react' @@ -29,39 +26,29 @@ import { toast } from 'sonner' interface SchedulersTableProps { tasks: ScheduledTask[] - onTaskUpdated?: (task: ScheduledTask) => void onTaskDeleted?: (taskId: number) => void } -export function SchedulersTable({ tasks, onTaskUpdated, onTaskDeleted }: SchedulersTableProps) { +export function SchedulersTable({ tasks, onTaskDeleted }: SchedulersTableProps) { const [loadingActions, setLoadingActions] = useState>({}) - const handleToggleActive = async (task: ScheduledTask) => { - if (loadingActions[task.id]) return - - try { - setLoadingActions(prev => ({ ...prev, [task.id]: true })) - - const updatedTask = await schedulersService.updateTask(task.id, { - is_active: !task.is_active, - }) - - onTaskUpdated?.(updatedTask) - toast.success(`Task ${task.is_active ? 'paused' : 'resumed'} successfully`) - } catch (error) { - const message = error instanceof Error ? error.message : 'Failed to update task' - toast.error(message) - } finally { - setLoadingActions(prev => ({ ...prev, [task.id]: false })) - } - } - const handleCancelTask = async (task: ScheduledTask) => { if (loadingActions[task.id]) return - + + // Confirm deletion + const confirmMessage = `Are you sure you want to delete the task "${task.name}"?${ + task.status === 'scheduled' || task.status === 'running' + ? '\n\nThis task is currently active and will be stopped immediately.' + : '' + }\n\nThis action cannot be undone.` + + if (!confirm(confirmMessage)) { + return + } + try { setLoadingActions(prev => ({ ...prev, [task.id]: true })) - + await schedulersService.cancelTask(task.id) onTaskDeleted?.(task.id) toast.success('Task deleted successfully') @@ -85,7 +72,7 @@ export function SchedulersTable({ tasks, onTaskUpdated, onTaskDeleted }: Schedul return (
{tasks.map((task) => ( - +
@@ -94,11 +81,6 @@ export function SchedulersTable({ tasks, onTaskUpdated, onTaskDeleted }: Schedul {getTaskStatusLabel(task.status)} - {!task.is_active && ( - - Paused - - )}

{getTaskTypeLabel(task.task_type)} @@ -121,26 +103,8 @@ export function SchedulersTable({ tasks, onTaskUpdated, onTaskDeleted }: Schedul - handleToggleActive(task)} - disabled={task.status === 'completed' || task.status === 'cancelled'} - > - {task.is_active ? ( - <> - - Pause Task - - ) : ( - <> - - Resume Task - - )} - - handleCancelTask(task)} - disabled={task.status === 'completed' || task.status === 'cancelled'} className="text-destructive focus:text-destructive" > diff --git a/src/pages/SchedulersPage.tsx b/src/pages/SchedulersPage.tsx index e7ab5c5..ae75ace 100644 --- a/src/pages/SchedulersPage.tsx +++ b/src/pages/SchedulersPage.tsx @@ -100,11 +100,6 @@ export function SchedulersPage() { setShowCreateDialog(false) } - const handleTaskUpdated = (updatedTask: ScheduledTask) => { - setTasks(prev => prev.map(task => - task.id === updatedTask.id ? updatedTask : task - )) - } const handleTaskDeleted = (taskId: number) => { setTasks(prev => prev.filter(task => task.id !== taskId)) @@ -132,7 +127,6 @@ export function SchedulersPage() { return ( )