@anew/hooks
Version:
AnewJS React Hooks
19 lines (18 loc) • 729 B
TypeScript
import { AnyStore } from './types';
interface Selector<ST extends AnyStore> {
(state: ST['state']): any;
}
interface Equality<S extends AnyStore['state'] = AnyStore['state']> {
<State extends S>(a: State, b: State): boolean;
}
/**
* Hook factory, which creates a `useStoreState` hook bound to a given store.
*
* @param {Store} [store] Store
* @returns {Function} A `useStoreState` hook bound to the specified store.
*/
export default function createUseStoreState<ST extends AnyStore>(store: ST): {
<S extends Selector<ST>, E extends Equality<ST["state"]>>(selector: S, equalityFn?: E): ReturnType<S>;
withSallowEqual<S_1 extends Selector<ST>>(selector: S_1): ReturnType<S_1>;
};
export {};