+ {/* Header */}
+
+
+
{title}
+
{description}
+
+
+
+
+ {/* Status Overview */}
+
+ {Object.entries(statusCounts).map(([status, count]) => {
+ const config = statusConfig[status as keyof typeof statusConfig];
+ const StatusIcon = config.icon;
+ return (
+
setFilter(filter === status ? 'all' : status)}
+ >
+
+
+
+
+
{status.replace('-', ' ')}
+
{count}
+
+
+
+
+ );
+ })}
+
+
+ {/* Filter Buttons */}
+
+
+ {Object.entries(statusCounts).map(([status, count]) => (
+
+ ))}
+
+
+ {/* Tasks Grid */}
+
+ {filteredTasks.map((task) => {
+ const statusConf = statusConfig[task.status];
+ const StatusIcon = statusConf.icon;
+
+ return (
+
+
+
+ {task.title}
+
+ {task.priority}
+
+
+ {task.description}
+
+
+
+
+
+
+ {task.status.replace('-', ' ')}
+
+
+
+ {task.assignee && (
+
+
Assignee
+
{task.assignee}
+
+ )}
+
+ {task.dueDate && (
+
+
Due Date
+
{task.dueDate}
+
+ )}
+
+
+ );
+ })}
+
+
+ {filteredTasks.length === 0 && (
+
+
+
+
No tasks found
+
+ {filter === 'all'
+ ? 'No tasks have been created yet.'
+ : `No tasks with status "${filter.replace('-', ' ')}" found.`
+ }
+
+
+
+ )}
+
+