@reactodia/workspace
Version:
Reactodia Workspace -- library for visual interaction with graphs in a form of a diagram.
40 lines • 1.52 kB
TypeScript
import * as React from 'react';
import { Events, PropertyChange } from '../../coreUtils/events';
export interface SearchInputProps {
className?: string;
inputProps?: React.HTMLProps<HTMLInputElement>;
store: SearchInputStore;
children?: React.ReactNode;
}
export declare function SearchInput(props: SearchInputProps): import("react/jsx-runtime").JSX.Element;
export interface UseSearchInputStoreOptions<T> {
initialValue: T;
submitTimeout?: number | 'immediate' | 'explicit';
allowSubmit?: (value: T) => boolean;
}
export interface SearchInputStore<T = string> {
readonly events: Events<SearchInputStoreEvents<T>>;
get mode(): 'debounce' | 'immediate' | 'explicit';
get value(): T;
change(params: {
value: T;
action: 'input' | 'submit' | 'clear';
}): void;
}
export interface SearchInputStoreEvents<T> {
changeValue: SearchInputStoreChangeValueEvent<T>;
changeMode: PropertyChange<SearchInputStore<T>, SearchInputStore['mode']>;
executeSearch: {
readonly source: SearchInputStore<T>;
readonly value: T;
};
clearSearch: {
readonly source: SearchInputStore<T>;
readonly value: T;
};
}
export interface SearchInputStoreChangeValueEvent<T> extends PropertyChange<SearchInputStore<T>, T> {
readonly action: 'input' | 'submit' | 'clear';
}
export declare function useSearchInputStore<T = string>(params: UseSearchInputStoreOptions<T>): SearchInputStore<T>;
//# sourceMappingURL=searchInput.d.ts.map