feat: enhanced create modal, project/assignee badges, status filter, keyboard shortcuts
- CreateTaskModal: project selector, due date picker, source in 'more options' - TaskCard: project name badge (📁) and assignee badge (👤) - QueuePage: status filter dropdown, clear filters button, filter count indicator - QueuePage: Ctrl+N keyboard shortcut to create task - DashboardPage: project/assignee badges on active task cards - Search now also matches assignee name
This commit is contained in:
@@ -53,6 +53,7 @@ interface TaskCardProps {
|
||||
isLast?: boolean;
|
||||
isActive?: boolean;
|
||||
onClick?: () => void;
|
||||
projectName?: string;
|
||||
}
|
||||
|
||||
export function TaskCard({
|
||||
@@ -64,6 +65,7 @@ export function TaskCard({
|
||||
isLast,
|
||||
isActive,
|
||||
onClick,
|
||||
projectName,
|
||||
}: TaskCardProps) {
|
||||
const actions = statusActions[task.status] || [];
|
||||
const noteCount = task.progressNotes?.length || 0;
|
||||
@@ -110,6 +112,18 @@ export function TaskCard({
|
||||
<span className={`text-[10px] sm:text-xs px-1.5 sm:px-2 py-0.5 rounded-full font-medium ${sourceColors[task.source] || sourceColors.other}`}>
|
||||
{task.source}
|
||||
</span>
|
||||
{/* Project badge */}
|
||||
{projectName && (
|
||||
<span className="text-[10px] sm:text-xs px-1.5 sm:px-2 py-0.5 rounded-full font-medium bg-sky-100 text-sky-700">
|
||||
📁 {projectName}
|
||||
</span>
|
||||
)}
|
||||
{/* Assignee badge */}
|
||||
{task.assigneeName && (
|
||||
<span className="text-[10px] sm:text-xs px-1.5 sm:px-2 py-0.5 rounded-full font-medium bg-emerald-100 text-emerald-700">
|
||||
👤 {task.assigneeName}
|
||||
</span>
|
||||
)}
|
||||
<span className="text-[10px] sm:text-xs text-gray-400">
|
||||
{timeAgo(task.createdAt)}
|
||||
</span>
|
||||
|
||||
Reference in New Issue
Block a user