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.

40 lines 1.46 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { useMemo } from "react"; import { PlaceholderResultView } from "../../components/result/PlaceholderResultView"; import { z } from "zod"; const resultWithMeta = z.object({ _meta: z.object({ rawHit: z.object({ _index: z.string() }) }) }); export function ResultViewSelector({ resultProps, resultView, resultViewPerIndex }) { const fallbackResultView = useMemo(() => { return resultView ?? ((props) => _jsx(PlaceholderResultView, { ...props })); }, [resultView]); const index = useMemo(() => { try { const parsed = resultWithMeta.parse(resultProps.result); return parsed._meta.rawHit._index; } catch (e) { console.error("Could not determine result source index in ResultViewSelector", e); return null; } }, [resultProps.result]); const specificResultView = useMemo(() => { if (index === null) return null; if (resultViewPerIndex && index in resultViewPerIndex) { return resultViewPerIndex[index]; } else return null; }, [index, resultViewPerIndex]); const Selected = useMemo(() => { return specificResultView ?? fallbackResultView; }, [fallbackResultView, specificResultView]); return _jsx(Selected, { ...resultProps }); } //# sourceMappingURL=ResultViewSelector.js.map