feat(08-01): create StatusBadge component and wire into CandidateCard

- StatusBadge: clickable pill badge with popup menu (researching/ordered/arrived)
- Muted gray styling, LucideIcon per status, click-outside dismiss, Escape key support
- CandidateCard: status + onStatusChange props, StatusBadge in pill row after category
- Thread detail page: passes candidate.status and useUpdateCandidate for onStatusChange
- Fix Biome formatting for candidateStatusSchema enum

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 14:12:02 +01:00
parent 5f89acd503
commit 25956ed3ee
4 changed files with 123 additions and 1 deletions

View File

@@ -37,7 +37,11 @@ export const updateThreadSchema = z.object({
});
// Candidate status
export const candidateStatusSchema = z.enum(["researching", "ordered", "arrived"]);
export const candidateStatusSchema = z.enum([
"researching",
"ordered",
"arrived",
]);
// Candidate schemas (same fields as items)
export const createCandidateSchema = z.object({