UNPKG

easy-peasy

Version:

Vegetarian friendly state for React

66 lines (57 loc) 1.49 kB
/* eslint-disable */ import { Actions, Thunk, Action, Reducer, State, createTypedHooks, useStoreActions, useStoreDispatch, useStoreState, useStore, } from 'easy-peasy'; interface Model { stateArray: Array<string>; stateBoolean: boolean; stateDate: Date; stateNull: null; stateNumber: number; stateRegExp: RegExp; stateString: string; stateUndefined: undefined; stateUnion: string | null; actionImp: Action<Model, number>; actionNoPayload: Action<Model>; thunkImp: Thunk<Model, string>; reducerImp: Reducer<number>; nested: { actionImp: Action<Model, number>; thunkImp: Thunk<Model, string>; }; } let dispatch = useStoreDispatch(); dispatch({ type: 'FOO' }); let useStoreResult = useStoreState((state: State<Model>) => state.stateNumber); useStoreResult + 1; let useActionResult = useStoreActions( (actions: Actions<Model>) => actions.actionImp, ); useActionResult(1); let store = useStore<Model>(); store.getState().stateString + 'world'; const typedHooks = createTypedHooks<Model>(); useStoreResult = typedHooks.useStoreState(state => state.stateNumber); useStoreResult + 1; useActionResult = typedHooks.useStoreActions(actions => actions.actionImp); useActionResult(1); dispatch = typedHooks.useStoreDispatch(); dispatch({ type: 'FOO', }); store = typedHooks.useStore(); store.getState().stateString + 'world'; let actionNoPayload = typedHooks.useStoreActions( actions => actions.actionNoPayload, ); actionNoPayload();