@magicbell/magicbell-react
Version:
React components for building a notification inbox for your app
35 lines • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useLocale = useLocale;
const tslib_1 = require("tslib");
require("dayjs/locale/es.js");
require("dayjs/locale/pt-br.js");
require("dayjs/locale/de.js");
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
const ramda_1 = require("ramda");
const de_js_1 = tslib_1.__importDefault(require("./translations/de.js"));
const es_js_1 = tslib_1.__importDefault(require("./translations/es.js"));
const pt_br_js_1 = tslib_1.__importDefault(require("./translations/pt-br.js"));
function setDayjsLocale(localeName) {
// All dayjs files are in lowercase and use hypens instead of underscores.
const standardLocaleName = localeName.toLowerCase().replace('_', '-');
dayjs_1.default.locale(standardLocaleName);
}
/**
* Function to build localization data for the `TranslationsProvider`.
*
* @param locale
*/
function useLocale(locale) {
const localeName = typeof locale === 'string' ? locale : locale.name;
setDayjsLocale(localeName);
const defaultLocales = { es: es_js_1.default, pt_BR: pt_br_js_1.default, de: de_js_1.default };
if (typeof locale === 'string') {
return defaultLocales[locale];
}
else {
const customLocales = (0, ramda_1.mergeDeepRight)(defaultLocales, { [localeName]: locale.translations });
return customLocales[localeName];
}
}
//# sourceMappingURL=i18n.js.map