import InfoTooltip from "@/components/ui/info-tooltip"; import { Table, TableBody, TableCell, TableRow } from "@/components/ui/table"; import { TextAndMatcher } from "@hoarder/shared/searchQueryParser"; import { Matcher } from "@hoarder/shared/types/search"; export default function QueryExplainerTooltip({ parsedSearchQuery, className, }: { parsedSearchQuery: TextAndMatcher & { result: string }; className?: string; }) { if (parsedSearchQuery.result == "invalid") { return null; } const MatcherComp = ({ matcher }: { matcher: Matcher }) => { switch (matcher.type) { case "tagName": return ( Tag Name {matcher.tagName} ); case "listName": return ( List Name {matcher.listName} ); case "dateAfter": return ( Created After {matcher.dateAfter.toDateString()} ); case "dateBefore": return ( Created Before {matcher.dateBefore.toDateString()} ); case "favourited": return ( Favourited {matcher.favourited.toString()} ); case "archived": return ( Archived {matcher.archived.toString()} ); case "and": case "or": return ( {matcher.type} {matcher.matchers.map((m, i) => ( ))}
); } }; return ( {parsedSearchQuery.text && ( Text {parsedSearchQuery.text} )} {parsedSearchQuery.matcher && ( )}
); }