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 && (
)}
);
}