@atlaskit/mention
Version:
A React component used to display user profiles in a list for 'Mention' functionality
37 lines • 1.23 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import React from 'react';
import { IntlProvider, useIntl } from 'react-intl-next';
import { getMessagesForLocale } from '../../util/i18n';
var EMPTY = {};
var useI18n = function useI18n(locale) {
var _React$useState = React.useState(EMPTY),
_React$useState2 = _slicedToArray(_React$useState, 2),
messages = _React$useState2[0],
setMessages = _React$useState2[1];
React.useEffect(function () {
var aborted = false;
setMessages(EMPTY);
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 = useIntl();
var messages = useI18n(intl.locale);
return /*#__PURE__*/React.createElement(IntlProvider, _extends({}, intl, {
messages: messages
}), children);
};
export default MessagesIntlProvider;