easy-peasy
Version:
Easy peasy global state for React
50 lines (44 loc) • 1.09 kB
text/typescript
/* eslint-disable */
import {
Actions,
Thunk,
Action,
Select,
Listen,
Reducer,
State,
createTypedHooks,
useActions,
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>;
thunkImp: Thunk<Model, string>;
selectImp: Select<Model, number>;
listenImp: Listen<Model>;
reducerImp: Reducer<number>;
nested: {
actionImp: Action<Model, number>;
thunkImp: Thunk<Model, string>;
};
}
let useStoreResult = useStore((state: State<Model>) => state.stateNumber);
useStoreResult + 1;
let useActionResult = useActions(
(actions: Actions<Model>) => actions.actionImp,
);
useActionResult(1);
const typedHooks = createTypedHooks<Model>();
useStoreResult = typedHooks.useStore(state => state.stateNumber);
useStoreResult + 1;
useActionResult = typedHooks.useActions(actions => actions.actionImp);
useActionResult(1);