UNPKG

bigbluebutton-html-plugin-sdk

Version:

This repository contains the SDK for developing BigBlueButton plugins. Plugins are React components that can be loaded from external sources by the BigBlueButton HTML5 client to extend its functionalities.

53 lines 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var ui_data_1 = require("../../../../ui-data"); var utils_1 = require("../../../../utils"); var utils_2 = require("./utils"); function useLocaleMessagesAuxiliary(_a) { var pluginApi = _a.pluginApi, fetchConfigs = _a.fetchConfigs; var currentLocale = pluginApi.useUiData(ui_data_1.IntlLocaleUiDataNames.CURRENT_LOCALE, { locale: 'en', fallbackLocale: 'en', }); var _b = (0, react_1.useState)(true), loading = _b[0], setLoading = _b[1]; var _c = (0, react_1.useState)({}), messages = _c[0], setMessages = _c[1]; var _d = (0, react_1.useState)(), fallbackMessages = _d[0], setFallbackMessages = _d[1]; (0, react_1.useEffect)(function () { if ((pluginApi === null || pluginApi === void 0 ? void 0 : pluginApi.localesBaseUrl) && currentLocale.locale) { var localesBaseUrl = pluginApi.localesBaseUrl; var locale = currentLocale.locale, fallbackLocale = currentLocale.fallbackLocale; var localeUrl_1 = "".concat(localesBaseUrl, "/").concat(locale, ".json"); var fallbackLocaleUrl_1 = "".concat(localesBaseUrl, "/").concat(fallbackLocale, ".json"); Promise.all([ localeUrl_1, fallbackLocaleUrl_1, ].map(function (url) { if (url !== fallbackLocaleUrl_1 || !fallbackMessages) { try { return (0, utils_2.fetchLocaleAndStore)(url, fetchConfigs); } catch (err) { utils_1.pluginLogger.error("Something went wrong while trying to fetch ".concat(localeUrl_1, ": "), err); return Promise.reject(err); } } return Promise.resolve(fallbackMessages); })).then(function (values) { var desiredLocale = values[0], fallbackLocaleMessages = values[1]; setMessages((0, utils_2.mergeLocaleMessages)(desiredLocale, fallbackLocaleMessages)); if (!fallbackMessages) setFallbackMessages(fallbackLocaleMessages); }).finally(function () { setLoading(false); }); } }, [currentLocale]); return { messages: messages, loading: loading, currentLocale: currentLocale.locale, }; } exports.default = useLocaleMessagesAuxiliary; //# sourceMappingURL=useLocaleMessages.js.map