diff --git a/app/tasks/page.tsx b/app/tasks/page.tsx index 0adb1b6..e37ce65 100644 --- a/app/tasks/page.tsx +++ b/app/tasks/page.tsx @@ -234,22 +234,35 @@ function StatusBreakdownCard({ counts }: { counts: { open: number; inProgress: n } export default async function TasksOverviewPage() { - // Fetch all data in parallel - const [ - statusCounts, - highPriorityCount, - overdueCount, - recentlyUpdated, - recentlyCompleted, - highPriorityOpen, - ] = await Promise.all([ - getTaskStatusCounts(), - countHighPriorityTasks(), - countOverdueTasks(), - fetchRecentlyUpdatedTasks(5), - fetchRecentlyCompletedTasks(5), - fetchHighPriorityOpenTasks(5), - ]); + // Fetch all data in parallel with error handling + let statusCounts = { open: 0, inProgress: 0, review: 0, done: 0, total: 0 }; + let highPriorityCount = 0; + let overdueCount = 0; + let recentlyUpdated: Task[] = []; + let recentlyCompleted: Task[] = []; + let highPriorityOpen: Task[] = []; + let errorMessage: string | null = null; + + try { + [ + statusCounts, + highPriorityCount, + overdueCount, + recentlyUpdated, + recentlyCompleted, + highPriorityOpen, + ] = await Promise.all([ + getTaskStatusCounts(), + countHighPriorityTasks(), + countOverdueTasks(), + fetchRecentlyUpdatedTasks(5), + fetchRecentlyCompletedTasks(5), + fetchHighPriorityOpenTasks(5), + ]); + } catch (error) { + console.error("Error fetching tasks:", error); + errorMessage = error instanceof Error ? error.message : "Failed to load tasks"; + } return ( @@ -278,6 +291,15 @@ export default async function TasksOverviewPage() { + {/* Error Message */} + {errorMessage && ( +
+

Error loading tasks

+

{errorMessage}

+

Make sure you are logged into gantt-board and have access to the Supabase database.

+
+ )} + {/* Stats Section */}