mirror of
https://github.com/elyby/accounts-frontend.git
synced 2025-05-31 14:11:58 +05:30
#379: move flags related code into a separate module to get rid of code duplication
This commit is contained in:
30
src/components/i18n/localeFlags.js
Normal file
30
src/components/i18n/localeFlags.js
Normal file
@@ -0,0 +1,30 @@
|
||||
// @flow
|
||||
import supportedLocales from 'i18n/index.json';
|
||||
|
||||
const localeToCountryCode = {
|
||||
en: 'gb',
|
||||
be: 'by',
|
||||
pt: 'br',
|
||||
uk: 'ua',
|
||||
vi: 'vn',
|
||||
sl: 'si',
|
||||
};
|
||||
const SUPPORTED_LANGUAGES: Array<string> = Object.keys(supportedLocales);
|
||||
|
||||
export default {
|
||||
getCountryList(): Array<string> {
|
||||
return SUPPORTED_LANGUAGES.map((locale) => localeToCountryCode[locale] || locale);
|
||||
},
|
||||
|
||||
/**
|
||||
* Возвращает для указанной локали её флаг с учётом всех нюансов загрузки флага
|
||||
* и подбора соответствующего локали флага.
|
||||
*
|
||||
* @param {string} locale
|
||||
*
|
||||
* @return {string}
|
||||
*/
|
||||
getIconUrl(locale: string): string {
|
||||
return require(`flag-icon-css/flags/4x3/${localeToCountryCode[locale] || locale}.svg`);
|
||||
}
|
||||
};
|
Reference in New Issue
Block a user