diff --git a/components/VercelChat/dialogs/tasks/TaskDetailsDialogContent.tsx b/components/VercelChat/dialogs/tasks/TaskDetailsDialogContent.tsx index 51aad9464..7b3416814 100644 --- a/components/VercelChat/dialogs/tasks/TaskDetailsDialogContent.tsx +++ b/components/VercelChat/dialogs/tasks/TaskDetailsDialogContent.tsx @@ -95,7 +95,7 @@ const TaskDetailsDialogContent: React.FC = ({ /> ) : ( diff --git a/components/VercelChat/tools/tasks/TaskCard.tsx b/components/VercelChat/tools/tasks/TaskCard.tsx index dfa54fc8b..7a78c0667 100644 --- a/components/VercelChat/tools/tasks/TaskCard.tsx +++ b/components/VercelChat/tools/tasks/TaskCard.tsx @@ -78,11 +78,11 @@ const TaskCard: React.FC = ({ task, isDeleted, ownerEmail }) => {
- {isRecurring(task.schedule) && ( + {task.schedule && isRecurring(task.schedule) && ( )} - {parseCronToHuman(task.schedule.trim())} + {task.schedule ? parseCronToHuman(task.schedule.trim()) : "No schedule"}
diff --git a/lib/tasks/isRecurring.ts b/lib/tasks/isRecurring.ts index 067ad1e28..41e3c37d7 100644 --- a/lib/tasks/isRecurring.ts +++ b/lib/tasks/isRecurring.ts @@ -2,6 +2,7 @@ * Checks if a cron expression represents a recurring schedule (daily, weekly, or monthly) */ export const isRecurring = (cronExpression: string): boolean => { + if (!cronExpression) return false; try { const parts = cronExpression.split(" "); if (parts.length >= 5) { diff --git a/lib/tasks/parseCronToHuman.ts b/lib/tasks/parseCronToHuman.ts index 2325f7ee9..fbdc8120c 100644 --- a/lib/tasks/parseCronToHuman.ts +++ b/lib/tasks/parseCronToHuman.ts @@ -1,6 +1,7 @@ import cronstrue from "cronstrue"; export const parseCronToHuman = (cronExpression: string): string => { + if (!cronExpression) return "No schedule"; try { return cronstrue.toString(cronExpression); } catch (e) {