@atlaskit/mention
Version:
A React component used to display user profiles in a list for 'Mention' functionality
44 lines (43 loc) • 1.6 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireDefault(require("react"));
var _reactIntlNext = require("react-intl-next");
var _i18n = require("../../util/i18n");
var EMPTY = {};
var useI18n = function useI18n(locale) {
var _React$useState = _react.default.useState(EMPTY),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
messages = _React$useState2[0],
setMessages = _React$useState2[1];
_react.default.useEffect(function () {
var aborted = false;
setMessages(EMPTY);
(0, _i18n.getMessagesForLocale)(locale).then(function (messages) {
if (!aborted) {
setMessages(messages);
}
}).catch(function (error) {
// eslint-disable-next-line no-console
console.error(error);
});
return function () {
aborted = true;
};
}, [locale]);
return messages;
};
var MessagesIntlProvider = function MessagesIntlProvider(props) {
var children = props.children;
var intl = (0, _reactIntlNext.useIntl)();
var messages = useI18n(intl.locale);
return /*#__PURE__*/_react.default.createElement(_reactIntlNext.IntlProvider, (0, _extends2.default)({}, intl, {
messages: messages
}), children);
};
var _default = exports.default = MessagesIntlProvider;