import { useState } from "react" import Link from "next/link" import { CornerDownLeft, File, Hash, Text } from "lucide-react" interface DocSearchHitProps { hit: any } export function DocSearchHit({ hit }: DocSearchHitProps) { // Compose hierarchy string const hierarchy = [hit.hierarchy.lvl0, hit.hierarchy.lvl1, hit.hierarchy.lvl2] .filter(Boolean) .join(" / ") const mainHierarchy = hit.hierarchy.lvl1 || "" // Determine which icon to show based on hierarchy and content let LeadingIcon = Text if (!hit.content || hit.content.trim() === "") { if (hit.hierarchy.lvl2) { LeadingIcon = Hash } else if (hit.hierarchy.lvl1) { LeadingIcon = File } } // Determine what to show as the main content let mainContent = null let mainContentHighlight = null if (!hit.content || hit.content.trim() === "") { if (hit.hierarchy.lvl2) { mainContent = hit.hierarchy.lvl2 mainContentHighlight = hit._highlightResult?.hierarchy?.lvl2?.value || hit.hierarchy.lvl2 } else if (hit.hierarchy.lvl1) { mainContent = hit.hierarchy.lvl1 mainContentHighlight = hit._highlightResult?.hierarchy?.lvl1?.value || hit.hierarchy.lvl1 } } return (
{mainContent ? ( ) : ( )}
{hierarchy && hit.type !== "lvl1" && (hit._highlightResult?.hierarchy?.lvl1?.value !== mainContent || hit._highlightResult?.hierarchy?.lvl1?.value !== mainHierarchy) && (
)}
) }