UNPKG

@ant-design/pro-flow

Version:
69 lines (66 loc) 2.63 kB
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray"; import { memo } from 'react'; import { create } from 'zustand'; import { createContext, createStoreUpdater } from 'zustand-utils'; // ============ State ============ // import { jsx as _jsx } from "react/jsx-runtime"; import { jsxs as _jsxs } from "react/jsx-runtime"; import { Fragment as _Fragment } from "react/jsx-runtime"; // ============ Store ============ // var _createStore = function createStore(_ref) { var collapsedKeys = _ref.collapsedKeys, onCollapsedKeysChange = _ref.onCollapsedKeysChange; return create(function (set, get) { return { collapsedKeys: collapsedKeys !== null && collapsedKeys !== void 0 ? collapsedKeys : [], onCollapsedKeysChange: onCollapsedKeysChange, toggleCollapsedKey: function toggleCollapsedKey(key) { var _get$onCollapsedKeysC, _get; var nextCollapsedKeys = []; if (get().collapsedKeys.includes(key)) { nextCollapsedKeys = get().collapsedKeys.filter(function (item) { return item !== key; }); } else { nextCollapsedKeys = [].concat(_toConsumableArray(get().collapsedKeys), [key]); } set({ collapsedKeys: nextCollapsedKeys }); (_get$onCollapsedKeysC = (_get = get()).onCollapsedKeysChange) === null || _get$onCollapsedKeysC === void 0 || _get$onCollapsedKeysC.call(_get, nextCollapsedKeys); } }; }); }; var _createContext = createContext(), useStore = _createContext.useStore, useStoreApi = _createContext.useStoreApi, Provider = _createContext.Provider; // ============ Provider ============ // export { useStore, useStoreApi, Provider }; var StoreUpdater = /*#__PURE__*/memo(function (_ref2) { var collapsedKeys = _ref2.collapsedKeys; var storeApi = useStoreApi(); var useUpdater = createStoreUpdater(storeApi); useUpdater('collapsedKeys', collapsedKeys); return null; }); export var CollapseProvider = /*#__PURE__*/memo(function (_ref3) { var children = _ref3.children, defaultCollapsedKeys = _ref3.defaultCollapsedKeys, onCollapsedKeysChange = _ref3.onCollapsedKeysChange, collapsedKeys = _ref3.collapsedKeys; return /*#__PURE__*/_jsx(_Fragment, { children: /*#__PURE__*/_jsxs(Provider, { createStore: function createStore() { return _createStore({ collapsedKeys: defaultCollapsedKeys, onCollapsedKeysChange: onCollapsedKeysChange }); }, children: [children, /*#__PURE__*/_jsx(StoreUpdater, { collapsedKeys: collapsedKeys })] }) }); });