UNPKG

@guanghechen/react-hooks

Version:
66 lines (55 loc) 2.11 kB
import { DependencyList, EffectCallback, MutableRefObject, Dispatch, SetStateAction } from 'react'; declare function useBeforeUnloadEffect(fn: (event: BeforeUnloadEvent) => void, deps: DependencyList): void; declare function useBeforeUnloadAsyncEffect(fn: (event: BeforeUnloadEvent) => Promise<void>, preventDefault?: boolean): void; /** * Deep compare version of React.useCallback * @param fn * @param deps */ declare function useDeepCompareCallback<T extends (...args: any[]) => any>(fn: T, deps: DependencyList): T; /** * Deep compare version of React.useEffect * @param fn * @param deps */ declare function useDeepCompareEffect(fn: EffectCallback, deps: DependencyList): void; /** * Deep compare version of React.useMemo * @param fn * @param deps */ declare function useDeepCompareMemo<T>(fn: () => T, deps: DependencyList): T; /** * A Hook to define an event handler with an always-stable function identity. * @param handler * @returns * @see https://github.com/facebook/react/issues/14099#issuecomment-440013892 * @see https://github.com/reactjs/rfcs/blob/useevent/text/0000-useevent.md#internal-implementation */ declare function useEventCallback<T extends (...args: any[]) => any>(handler: T): T; type ICallback = () => void; /** * Execute callback interval in react function components. * @param callback * @param duration */ declare function useInterval(callback: ICallback, duration: number): void; /** * Use previous state. * @param value * @returns */ declare function usePreviousState<T = unknown>(value: T): T; /** * Create a ref which always holds the latest value. * @param value * @returns */ declare function useRefreshRef<T>(value: T): MutableRefObject<T>; /** * Reinitialize the state if the related props changed.. * @param initialState * @returns */ declare function useSyncState<S>(initialState: S): [S, Dispatch<SetStateAction<S>>]; export { useBeforeUnloadAsyncEffect, useBeforeUnloadEffect, useDeepCompareCallback, useDeepCompareEffect, useDeepCompareMemo, useEventCallback, useInterval, usePreviousState, useRefreshRef, useSyncState };