UNPKG

@restart/hooks

Version:

A set of utility and general-purpose React hooks.

27 lines (26 loc) 1.32 kB
import { DependencyList, EffectCallback } from 'react'; export declare type EffectHook = (effect: EffectCallback, deps?: DependencyList) => void; export declare type IsEqual<TDeps extends DependencyList> = (nextDeps: TDeps, prevDeps: TDeps) => boolean; export declare type CustomEffectOptions<TDeps extends DependencyList> = { isEqual: IsEqual<TDeps>; effectHook?: EffectHook; }; /** * a useEffect() hook with customized depedency comparision * * @param effect The effect callback * @param dependencies A list of dependencies * @param isEqual A function comparing the next and previous dependencyLists */ declare function useCustomEffect<TDeps extends DependencyList = DependencyList>(effect: EffectCallback, dependencies: TDeps, isEqual: IsEqual<TDeps>): void; /** * a useEffect() hook with customized depedency comparision * * @param effect The effect callback * @param dependencies A list of dependencies * @param options * @param options.isEqual A function comparing the next and previous dependencyLists * @param options.effectHook the underlying effect hook used, defaults to useEffect */ declare function useCustomEffect<TDeps extends DependencyList = DependencyList>(effect: EffectCallback, dependencies: TDeps, options: CustomEffectOptions<TDeps>): void; export default useCustomEffect;