mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 04:46:40 +07:00
9 lines
383 B
TypeScript
9 lines
383 B
TypeScript
// create-index.tsx
|
|
import { Action } from 'redux';
|
|
|
|
type Handlers<State, Types extends string, Actions extends Action<Types>> = {
|
|
readonly [Type in Types]: (state: State, action: Actions) => State;
|
|
};
|
|
|
|
export const createReducer = (initialState, handlers) => (state = initialState, action) =>
|
|
handlers.hasOwnProperty(action.type) ? handlers[action.type](state, action) : state;
|