use-reducer-effect
Version:
A tiny library that enables side effects with the useReducer hook
6 lines (5 loc) • 709 B
TypeScript
import { Reducer, ReducerState, Dispatch, ReducerAction } from "react";
declare type SideEffectFunction<R extends Reducer<any, any>> = (state: ReducerState<R>, action: ReducerAction<R>) => Promise<ReducerAction<R> | null | undefined>;
export declare function createSideEffectReducer<R extends Reducer<any, any>, I>(sideEffects: SideEffectFunction<R>): (reducer: R, initialState: ReducerState<R>, initializer?: any) => [ReducerState<R>, Dispatch<ReducerAction<R>>];
export declare function useReducerWithSideEffects<R extends Reducer<any, any>, I>(reducer: R, sideEffects: SideEffectFunction<R>, initialState: ReducerState<R>, initializer?: any): [ReducerState<R>, Dispatch<ReducerAction<R>>];
export {};