UNPKG

@atlaskit/mention

Version:

A React component used to display user profiles in a list for 'Mention' functionality

172 lines (171 loc) 6.55 kB
import _extends from "@babel/runtime/helpers/extends"; import React from 'react'; import { FormattedMessage, useIntl } from 'react-intl-next'; import { messages } from '../components/i18n'; export const propFormatter = messageDescriptor => ({ values, children }) => { const { formatMessage } = useIntl(); const message = formatMessage(messageDescriptor, values); if (typeof children === 'function') { return children(message); } return /*#__PURE__*/React.createElement(FormattedMessage, _extends({ values: values }, messageDescriptor)); }; export const UnknownUserError = propFormatter(messages.unknownUserError); export const NoAccessWarning = propFormatter(messages.noAccessWarning); export const NoAccessLabel = propFormatter(messages.noAccessLabel); export const DefaultHeadline = propFormatter(messages.defaultHeadline); export const DefaultAdvisedAction = propFormatter(messages.defaultAdvisedAction); export const LoginAgain = propFormatter(messages.loginAgain); export const DifferentText = propFormatter(messages.differentText); /** * Tries to get the most specific messages bundle for a given locale. * * Strategy: * 1. Try to find messages with the exact string (i.e. 'fr_FR') * 2. If that doesn't work, try to find messages for the country locale (i.e. 'fr') * 3. If that doesn't work, return english messages as a fallback. * * @param locale string specifying the locale like 'en_GB', or 'fr'. */ export const getMessagesForLocale = async locale => { switch (locale) { case 'cs': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-cs" */'../i18n/cs').then(mod => mod.default); } case 'da': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-da" */'../i18n/da').then(mod => mod.default); } case 'de': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-de" */'../i18n/de').then(mod => mod.default); } case 'en': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-en" */'../i18n/en').then(mod => mod.default); } case 'en_GB': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-en_GB" */'../i18n/en_GB').then(mod => mod.default); } case 'en_ZZ': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-en_ZZ" */'../i18n/en_ZZ').then(mod => mod.default); } case 'es': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-es" */'../i18n/es').then(mod => mod.default); } case 'et': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-et" */'../i18n/et').then(mod => mod.default); } case 'fi': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-fi" */'../i18n/fi').then(mod => mod.default); } case 'fr': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-fr" */'../i18n/fr').then(mod => mod.default); } case 'hu': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-hu" */'../i18n/hu').then(mod => mod.default); } case 'is': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-is" */'../i18n/is').then(mod => mod.default); } case 'it': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-it" */'../i18n/it').then(mod => mod.default); } case 'ja': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-ja" */'../i18n/ja').then(mod => mod.default); } case 'ko': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-ko" */'../i18n/ko').then(mod => mod.default); } case 'nb': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-nb" */'../i18n/nb').then(mod => mod.default); } case 'nl': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-nl" */'../i18n/nl').then(mod => mod.default); } case 'pl': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-pl" */'../i18n/pl').then(mod => mod.default); } case 'pt_BR': case 'pt-BR': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-pt_BR" */'../i18n/pt_BR').then(mod => mod.default); } case 'pt_PT': case 'pt-PT': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-pt_PT" */'../i18n/pt_PT').then(mod => mod.default); } case 'ro': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-ro" */'../i18n/ro').then(mod => mod.default); } case 'ru': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-ru" */'../i18n/ru').then(mod => mod.default); } case 'sk': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-sk" */'../i18n/sk').then(mod => mod.default); } case 'sv': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-sv" */'../i18n/sv').then(mod => mod.default); } case 'th': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-th" */'../i18n/th').then(mod => mod.default); } case 'tr': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-tr" */'../i18n/tr').then(mod => mod.default); } case 'uk': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-uk" */'../i18n/uk').then(mod => mod.default); } case 'vi': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-vi" */'../i18n/vi').then(mod => mod.default); } case 'zh_TW': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-zh_TW" */'../i18n/zh_TW').then(mod => mod.default); } case 'zh': { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-zh" */'../i18n/zh').then(mod => mod.default); } default: { const fragments = locale.split(/[_-]/); if (fragments.length === 2) { return getMessagesForLocale(fragments[0]); } else { return import( /* webpackChunkName: "@atlaskit-internal_mention-i18n-en" */'../i18n/en').then(mod => mod.default); } } } };