mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
42 lines (41 loc) • 1.77 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.defaultConfigRef = exports.default = exports.BizConfigProvider = void 0;
exports.getDefaultConfig = getDefaultConfig;
exports.setDefaultConfig = setDefaultConfig;
exports.useConfig = useConfig;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireWildcard(require("react"));
var _ut = require("ut2");
var _zh_CN = _interopRequireDefault(require("../../locale/zh_CN"));
var _excluded = ["children"];
var defaultConfigRef = exports.defaultConfigRef = {
current: {
locale: _zh_CN.default
}
};
function setDefaultConfig(config) {
defaultConfigRef.current = (0, _ut.mergeObject)({}, defaultConfigRef.current, config);
}
function getDefaultConfig() {
return defaultConfigRef.current;
}
var ConfigContext = /*#__PURE__*/_react.default.createContext(null);
var BizConfigProvider = exports.BizConfigProvider = function BizConfigProvider(props) {
var children = props.children,
config = (0, _objectWithoutProperties2.default)(props, _excluded);
var parentConfig = useConfig();
var mergeConfig = (0, _ut.mergeObject)({}, parentConfig, config);
return /*#__PURE__*/_react.default.createElement(ConfigContext.Provider, {
value: mergeConfig
}, children);
};
function useConfig() {
var _useContext;
return (_useContext = (0, _react.useContext)(ConfigContext)) !== null && _useContext !== void 0 ? _useContext : getDefaultConfig();
}
var _default = exports.default = BizConfigProvider;