UNPKG

@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.83 kB
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 { filterValueToString, prettyPrintURL } from "../../lib/utils"; export function DefaultFacetOption({ option, facetConfig, onSelect, onRemove }) { const value = useMemo(() => { return filterValueToString(option.value); }, [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:wrap-break-word 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:wrap-break-word", 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