UNPKG

@wener/console

Version:
40 lines (39 loc) 1.3 kB
import React, { createContext, useCallback, useContext } from 'react'; import { get, set } from '@wener/utils'; import { create as produce } from 'mutative'; import { createStore, useStore } from 'zustand'; var DefaultContextStore = createStore(function() { return {}; }); var Context = /*#__PURE__*/ createContext(undefined); export var ContextStoreProvider = function(param) { var value = param.value, children = param.children; return /*#__PURE__*/ React.createElement(Context.Provider, { value: value }, children); }; function getContextStore() { return DefaultContextStore; } export function useContextStore() { var _useContext; var store = (_useContext = useContext(Context)) !== null && _useContext !== void 0 ? _useContext : DefaultContextStore; return { store: store, set: function set1(path, value) { store.setState(produce(function(s) { set(s, path, value, false); })); }, get: function get1(path) { return get(store.getState(), path); }, useWatch: function useWatch(path) { return useStore(store, useCallback(function(s) { return get(s, path); }, [ path ])); } }; }