From 1f79c5ca3cd7ae382041e671d1447401353ec2cc Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Mon, 6 Apr 2026 15:07:51 +0200 Subject: [PATCH 1/3] feat(21-03): rewire card click handlers to navigate to detail pages - ItemCard navigates to /items/$itemId instead of opening edit panel - CandidateCard navigates to /threads/$threadId/candidates/$candidateId - CandidateListItem navigates to candidate detail page - CatalogSearchOverlay cards navigate to /global-items/$globalItemId - Add button on catalog cards uses stopPropagation to prevent navigation --- src/client/components/CandidateCard.tsx | 10 +++++-- src/client/components/CandidateListItem.tsx | 11 ++++++-- .../components/CatalogSearchOverlay.tsx | 27 +++++++++++++++++-- src/client/components/ItemCard.tsx | 17 +++++++++--- 4 files changed, 55 insertions(+), 10 deletions(-) diff --git a/src/client/components/CandidateCard.tsx b/src/client/components/CandidateCard.tsx index f35a7f4..3ebc064 100644 --- a/src/client/components/CandidateCard.tsx +++ b/src/client/components/CandidateCard.tsx @@ -1,3 +1,4 @@ +import { useNavigate } from "@tanstack/react-router"; import { useFormatters } from "../hooks/useFormatters"; import type { CandidateDelta } from "../hooks/useImpactDeltas"; import { LucideIcon } from "../lib/iconData"; @@ -46,7 +47,7 @@ export function CandidateCard({ delta, }: CandidateCardProps) { const { weight, price } = useFormatters(); - const openCandidateEditPanel = useUIStore((s) => s.openCandidateEditPanel); + const navigate = useNavigate(); const openConfirmDeleteCandidate = useUIStore( (s) => s.openConfirmDeleteCandidate, ); @@ -56,7 +57,12 @@ export function CandidateCard({ return (