@brightlayer-ui/react-native-auth-workflow
Version:
Re-usable workflow components for Authentication and Registration within Eaton applications.
57 lines (56 loc) • 3.67 kB
JavaScript
/**
* @packageDocumentation
* @module RegistrationContextProvider
*/
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
import React, { useEffect } from 'react';
import { RegistrationContext } from './context';
import { i18nRegistrationInstance } from './i18nRegistrationInstance';
import { ErrorContext } from '../ErrorContext';
import { SharedDictionaries } from '../SharedDictionaries';
import { RegistrationDictionaries } from './RegistrationDictionaries';
import { I18nextProvider, useTranslation } from 'react-i18next';
const RegistrationContextProviderContent = (props) => {
var _a;
const { children, errorConfig } = props, registrationContextProps = __rest(props, ["children", "errorConfig"]);
const { t } = useTranslation();
const mergedErrorConfig = Object.assign(Object.assign({ t: t, title: 'bluiCommon:MESSAGES.ERROR' }, errorConfig), { dialogConfig: Object.assign({ dismissLabel: 'bluiCommon:ACTIONS.OKAY' }, ((_a = errorConfig === null || errorConfig === void 0 ? void 0 : errorConfig.dialogConfig) !== null && _a !== void 0 ? _a : {})) });
return (React.createElement(RegistrationContext.Provider, { value: Object.assign({}, registrationContextProps) },
React.createElement(ErrorContext.Provider, { value: mergedErrorConfig }, children)));
};
/**
* RegistrationContextProvider allow you to access shared data / configuration / API definition for registration workflow
* @param {RegistrationContextProviderProps} props - props for Registration Context Provider
*/
export const RegistrationContextProvider = (props) => {
var _a;
const i18nInstance = (_a = props.i18n) !== null && _a !== void 0 ? _a : i18nRegistrationInstance;
const { language, i18n = i18nInstance, children } = props, other = __rest(props, ["language", "i18n", "children"]);
if (props.i18n) {
i18n.addResourceBundle('zh', 'bluiRegistration', RegistrationDictionaries.chinese.translation, true, false);
i18n.addResourceBundle('zh', 'bluiCommon', SharedDictionaries.chinese.translation, true, false);
i18n.addResourceBundle('en', 'bluiRegistration', RegistrationDictionaries.english.translation, true, false);
i18n.addResourceBundle('en', 'bluiCommon', SharedDictionaries.english.translation, true, false);
i18n.addResourceBundle('fr', 'bluiRegistration', RegistrationDictionaries.french.translation, true, false);
i18n.addResourceBundle('fr', 'bluiCommon', SharedDictionaries.french.translation, true, false);
i18n.addResourceBundle('pt', 'bluiRegistration', RegistrationDictionaries.portuguese.translation, true, false);
i18n.addResourceBundle('pt', 'bluiCommon', SharedDictionaries.portuguese.translation, true, false);
i18n.addResourceBundle('es', 'bluiRegistration', RegistrationDictionaries.spanish.translation, true, false);
i18n.addResourceBundle('es', 'bluiCommon', SharedDictionaries.spanish.translation, true, false);
}
useEffect(() => {
void i18n.changeLanguage(language);
}, [i18n, language]);
return (React.createElement(I18nextProvider, { i18n: i18n },
React.createElement(RegistrationContextProviderContent, Object.assign({}, other, { language: language }), children)));
};