linkmore-design
Version:
π πlmη»δ»ΆεΊγπ
51 lines (50 loc) β’ 1.96 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.useLocaleReceiver = exports.default = void 0;
var React = _interopRequireWildcard(require("react"));
var _context = _interopRequireDefault(require("./context"));
var _default2 = _interopRequireDefault(require("./default"));
const LocaleReceiver = props => {
const {
componentName = 'global',
defaultLocale,
children
} = props;
const antLocale = React.useContext(_context.default);
const getLocale = React.useMemo(() => {
const locale = defaultLocale || _default2.default[componentName];
const localeFromContext = antLocale?.[componentName] ?? {};
return {
...(locale instanceof Function ? locale() : locale),
...(localeFromContext || {})
};
}, [componentName, defaultLocale, antLocale]);
const getLocaleCode = React.useMemo(() => {
const localeCode = antLocale && antLocale.locale;
// Had use LocaleProvide but didn't set locale
if (antLocale && antLocale.exist && !localeCode) {
return _default2.default.locale;
}
return localeCode;
}, [antLocale]);
return children(getLocale, getLocaleCode, antLocale);
};
var _default = LocaleReceiver;
exports.default = _default;
const useLocaleReceiver = (componentName, defaultLocale) => {
const antLocale = React.useContext(_context.default);
const getLocale = React.useMemo(() => {
const locale = defaultLocale || _default2.default[componentName];
const localeFromContext = antLocale?.[componentName] ?? {};
return {
...(typeof locale === 'function' ? locale() : locale),
...(localeFromContext || {})
};
}, [componentName, defaultLocale, antLocale]);
return [getLocale];
};
exports.useLocaleReceiver = useLocaleReceiver;