zim-fuzzysearch
Version:
Client side fuzzy search combined with seperate configurable result highlighting.
49 lines (48 loc) • 1.34 kB
TypeScript
import React from "react";
import { FuzzyOptions } from "./hooks/useFuse";
import { ZimMarkOptions } from "./hooks/useMark";
export interface ZIMSearchAble<T = string> {
label: string;
value: T;
txt?: string;
tags?: string[];
[property: string]: any;
}
export interface Props {
data?: ZIMSearchAble[];
tagConceptMap?: {
[tagName: string]: {
url: string;
};
};
onSelect?: (sel: ZIMSearchAble) => void;
onTagSelect?: (tagObj: {
url: string;
}) => void;
onSearch?: (searchVal: string) => void;
onInput?: (val: string) => void;
onFuseScoreToCssClass?: (scoreAsFloat: number) => string;
searchInput?: string;
placeHolder?: string;
fuseOptions?: FuzzyOptions;
fuseKeyMap?: {
[fuseKey: string]: {
label: string;
};
} | null;
fuseKeyAllLabel?: string;
onFuseKeySelect?: (fuseKeyMap: string[]) => void;
markOptions?: ZimMarkOptions;
resultCountLabel?: string;
searchOnClick?: boolean;
showResultGrid?: boolean;
suggestions?: {
[property: string]: {
label: string;
value: string;
};
};
children?: JSX.Element;
}
declare const ZIMFuzzySearch: React.FC<Props>;
export default ZIMFuzzySearch;