@kit-data-manager/react-search-component
Version:
All-in-one component for rendering an elastic search UI for searching anything. Built-in support for visualizing related items in a graph and resolving unique identifiers.
28 lines • 1.79 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { Checkbox } from "../../components/ui/checkbox";
import { Label } from "../../components/ui/label";
import { PidNameDisplay } from "../../components/result/PidNameDisplay";
import { useMemo } from "react";
import { prettyPrintURL } from "../../lib/utils";
export function DefaultFacetOption({ option, facetConfig, onSelect, onRemove }) {
const value = useMemo(() => {
return option.value.toString();
}, [option.value]);
const parsedValue = useMemo(() => {
if (facetConfig.singleValueMapper) {
return facetConfig.singleValueMapper(value);
}
else if (value && facetConfig.prettyPrintURLs) {
console.warn("[react-search-component] Used deprecated facet config `prettyPrintURLs`");
return prettyPrintURL(value);
}
else if (value && facetConfig.usePidResolver) {
console.warn("[react-search-component] Used deprecated facet config `usePidResolver`");
return _jsx(PidNameDisplay, { pid: value });
}
else
return value;
}, [facetConfig, value]);
return (_jsxs("div", { className: "rfs-flex rfs-max-w-full rfs-items-center rfs-gap-2 rfs-break-words rfs-p-1 rfs-pb-2", children: [_jsx(Checkbox, { id: value + facetConfig.key, checked: option.selected, onCheckedChange: (v) => (v ? onSelect(value) : onRemove(value)) }), _jsx(Label, { htmlFor: value + facetConfig.key, className: "rfs-min-w-0 rfs-grow rfs-break-words", children: parsedValue || _jsx("span", { className: "rfs-text-muted-foreground", children: "None" }) }), _jsx("div", { className: "rfs-text-xs rfs-text-muted-foreground", children: option.count })] }, value));
}
//# sourceMappingURL=DefaultFacetOption.js.map