import { AdapterState, AdapterEnhancer, SetStateFunction } from '../types/AdapterTypes'; import createApplyMiddleware, { Middleware } from './internals/createApplyMiddleware'; type SetStateMiddleware = Middleware< TActivity, TAdapterState, SetStateFunction >; export default function applySetStateMiddleware( ...middlewares: SetStateMiddleware[] ): AdapterEnhancer { return createApplyMiddleware>( (api: { setState: any }) => api.setState, (api: any, fn: any) => ({ ...api, setState: fn }) )(...middlewares); } export type { SetStateMiddleware };