@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
50 lines (49 loc) • 1.87 kB
JavaScript
;
"use client";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useTranslation;
var _react = require("react");
var _Context = _interopRequireDefault(require("../../../shared/Context.js"));
var _useTranslation = _interopRequireDefault(require("../../../shared/useTranslation.js"));
var _componentHelper = require("../../../shared/component-helper.js");
var _defaults = require("../../../shared/defaults.js");
var _index = _interopRequireDefault(require("../constants/locales/index.js"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function useTranslation(messagesOrArgs) {
const {
locale,
translation: globalTranslation
} = (0, _react.useContext)(_Context.default);
const {
messages,
fallbackLocale
} = (0, _react.useMemo)(() => {
const arg = messagesOrArgs;
if ((0, _componentHelper.isObject)(messagesOrArgs) && ('messages' in messagesOrArgs || 'fallbackLocale' in messagesOrArgs)) {
return {
messages: arg === null || arg === void 0 ? void 0 : arg.messages,
fallbackLocale: arg === null || arg === void 0 ? void 0 : arg.fallbackLocale
};
}
return {
messages: messagesOrArgs,
fallbackLocale: _defaults.LOCALE
};
}, [messagesOrArgs]);
let translationLocale = locale;
if (locale.startsWith('en-') && !Object.keys(_index.default).some(l => l === locale)) {
translationLocale = 'en-GB';
}
const base = (0, _react.useMemo)(() => {
return (0, _componentHelper.extendDeep)({}, _index.default[translationLocale] || _index.default[_defaults.LOCALE], globalTranslation);
}, [globalTranslation, translationLocale]);
return (0, _useTranslation.default)({
messages,
fallbackLocale,
base,
warnLabel: 'Form.useTranslation'
});
}
//# sourceMappingURL=useTranslation.js.map