diff --git a/components/solo/solo-task-card.tsx b/components/solo/solo-task-card.tsx index 6ba263f..5629dca 100644 --- a/components/solo/solo-task-card.tsx +++ b/components/solo/solo-task-card.tsx @@ -8,6 +8,7 @@ import { cn } from '@/lib/utils' import { CodeBadge } from '@/components/shared/code-badge' import { JOB_STATUS_LABELS, JOB_STATUS_COLORS, JOB_STATUS_ACTIVE } from '@/components/shared/job-status' import { useSoloStore } from '@/stores/solo-store' +import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from '@/components/ui/tooltip' import type { SoloTask } from './solo-board' const PRIORITY_BORDER: Record = { @@ -30,10 +31,6 @@ export function SoloTaskCard({ task, isDemo, onClick }: SoloTaskCardProps) { disabled: isDemo, }) - // view-transition-name laat de browser deze card snapshotten zodat hij - // soepel van kolom naar kolom animeert wanneer de status realtime wijzigt - // (ST-805 animatie A). Tijdens drag uit zetten — dnd-kit beheert de - // transform dan zelf en dubbele transitions willen we niet. const style: React.CSSProperties | undefined = transform ? { transform: CSS.Translate.toString(transform) } : { viewTransitionName: `solo-task-${task.id}` } @@ -51,12 +48,66 @@ export function SoloTaskCard({ task, isDemo, onClick }: SoloTaskCardProps) { )} {...(!isDemo ? { ...attributes, ...listeners } : {})} > + {/* Regel 1: taaknaam + task_code */}

{task.title}

- {task.task_code && } + {task.task_code && ( + + + }> + + + +

{task.title}

+ {task.description && ( +

{task.description.slice(0, 100)}

+ )} +
+
+
+ )}
+ + {/* Regels 2–3: beschrijving + pbi_code */} +
+ {task.description ? ( + + + + }> + {task.description} + + {task.description.length > 80 && ( + + {task.description} + + )} + + + ) : ( +
+ )} + {task.pbi_code && ( + + + }> + + + +

{task.pbi_title}

+ {task.pbi_description && ( +

{task.pbi_description.slice(0, 100)}

+ )} +
+
+
+ )} +
+ + {/* Regel 4: story-info + job-badge */}
-

+

{task.story_code && {task.story_code}} {task.story_title}

@@ -95,10 +146,21 @@ export function SoloTaskCardOverlay({ task }: { task: SoloTask }) { PRIORITY_BORDER[task.priority], )} > + {/* Regel 1 */}

{task.title}

{task.task_code && }
+ {/* Regels 2–3 */} +
+ {task.description ? ( +

{task.description}

+ ) : ( +
+ )} + {task.pbi_code && } +
+ {/* Regel 4 */}

{task.story_code && {task.story_code}} {task.story_title}