feat(PBI-61): filter popover + created_at op job-kaart (#158)

- Nieuwe JobsColumn met Kind/Status filter-popover per kolom (Actief/Klaar)
- Filterstate persistent in localStorage (whitelist-validatie tegen corrupte waardes)
- Active-filter badges in kolomheader, klikbaar om te wissen
- Aanmaakdatum + tijd rechtsonder op elke JobCard (nl-NL short formaat)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Janpeter Visser 2026-05-07 21:52:27 +02:00 committed by GitHub
parent 7ae8a24372
commit e8371b9f95
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 270 additions and 46 deletions

View file

@ -19,6 +19,7 @@ interface JobCardProps {
branch?: string | null
error?: string | null
summary?: string | null
createdAt: Date | string
isSelected?: boolean
onClick?: () => void
}
@ -33,7 +34,7 @@ const KIND_LABELS: Record<ClaudeJobKind, string> = {
export default function JobCard({
kind, status, taskCode, taskTitle, ideaCode, ideaTitle,
sprintGoal, sprintCode, productName, branch, error, isSelected, onClick,
sprintGoal, sprintCode, productName, branch, error, createdAt, isSelected, onClick,
}: JobCardProps) {
let titleText: string
if (kind === 'TASK_IMPLEMENTATION') {
@ -70,7 +71,12 @@ export default function JobCard({
</span>
</div>
<p className="font-medium truncate mt-1">{titleText}</p>
<p className="text-xs text-muted-foreground truncate mt-0.5">{detailText}</p>
<div className="flex items-end justify-between gap-2 mt-0.5">
<p className="text-xs text-muted-foreground truncate">{detailText}</p>
<span className="text-[10px] text-muted-foreground shrink-0 tabular-nums">
{new Date(createdAt).toLocaleString('nl-NL', { dateStyle: 'short', timeStyle: 'short' })}
</span>
</div>
</div>
)
}