react-fusejs-fuzzy-search
Version:
Fuzzy search by keeping the UI layer as abstract as possible.
15 lines (14 loc) • 724 B
TypeScript
import React, { ReactNode } from "react";
import Fuse from "fuse.js";
declare type SearchFunction<T> = (pattern: string | Fuse.Expression, options?: Fuse.FuseSearchOptions | undefined) => Fuse.FuseResult<T>[];
declare type FuseSearchWrapperOpts<T> = {
list: readonly T[];
fuseOpts?: Fuse.IFuseOptions<T> | undefined;
index?: Fuse.FuseIndex<{}> | undefined;
searchComponentBuilder: (search: SearchFunction<T>) => ReactNode;
resultsBuilder: (results: Fuse.FuseResult<{}>[]) => ReactNode;
};
declare type FuseSearchWrapperComponent<T = {}> = React.FC<FuseSearchWrapperOpts<T>>;
declare const FuseSearchWrapper: FuseSearchWrapperComponent;
export { FuseSearchWrapperOpts };
export default FuseSearchWrapper;