diff --git a/frontend/src/api/public-client.ts b/frontend/src/api/public-client.ts index 80c6cdb..5fd03b7 100644 --- a/frontend/src/api/public-client.ts +++ b/frontend/src/api/public-client.ts @@ -17,6 +17,7 @@ export interface SearchResultItem { creator_slug: string; topic_category: string; topic_tags: string[]; + technique_page_slug?: string; } export interface SearchResponse { diff --git a/frontend/src/pages/SearchResults.tsx b/frontend/src/pages/SearchResults.tsx index b33a2f0..9199a3a 100644 --- a/frontend/src/pages/SearchResults.tsx +++ b/frontend/src/pages/SearchResults.tsx @@ -142,10 +142,21 @@ export default function SearchResults() { ); } +function getSearchResultLink(item: SearchResultItem): string { + if (item.type === "key_moment") { + if (item.technique_page_slug) { + return `/techniques/${item.technique_page_slug}#km-${item.slug || item.title}`; + } + // Graceful fallback — re-search instead of 404 + return `/search?q=${encodeURIComponent(item.title)}`; + } + return `/techniques/${item.slug}`; +} + function SearchResultCard({ item }: { item: SearchResultItem }) { return (