UNPKG

@raulpesilva/re-state

Version:

easy way to create a shared state to the entire application

31 lines (28 loc) 1.58 kB
import { createGetReState } from './createGetReState'; import { createReState } from './createReState'; import { createReStateDispatch } from './createReStateDispatch'; import { createReStateSelect } from './createReStateSelect'; import { setReStateInitialValue } from './store'; /** * Creates a set of methods to use with React. * @param name Unique name of the state * @param initialValue initial value of the state * @param valueOfReset value to reset when calling resetReState * @returns a set of methods to use with React */ export var createReStateMethods = function createReStateMethods(name, initialValue, valueOfReset) { var _methods; if (!name) throw new Error('Name is required'); if (typeof name !== 'string') throw new Error('Name need to be a string'); var capitalizedName = name.charAt(0).toUpperCase() + name.slice(1); var use = createReState(name, initialValue); var useSelect = createReStateSelect(name); var dispatch = createReStateDispatch(name); var get = createGetReState(name); if (valueOfReset) setReStateInitialValue(name, valueOfReset.value); var methods = (_methods = {}, _methods["use" + capitalizedName] = use, _methods["use" + capitalizedName + "Select"] = useSelect, _methods["dispatch" + capitalizedName] = dispatch, _methods["get" + capitalizedName] = get, _methods["reset" + capitalizedName] = function reset() { var _valueOfReset$value; return dispatch((_valueOfReset$value = valueOfReset == null ? void 0 : valueOfReset.value) != null ? _valueOfReset$value : initialValue); }, _methods); return methods; };