// @flow import type { IntlShape } from 'react-intl'; import React, { Component } from 'react'; import { FormattedMessage as Message, injectIntl } from 'react-intl'; import classNames from 'classnames'; import { connect } from 'react-redux'; import { changeLang } from 'components/user/actions'; import LANGS from 'i18n/index.json'; import formStyles from 'components/ui/form/form.scss'; import popupStyles from 'components/ui/popup/popup.scss'; import icons from 'components/ui/icons.scss'; import styles from './languageSwitcher.scss'; import messages from './languageSwitcher.intl.json'; import LanguageList from './LanguageList'; const translateUrl = 'http://ely.by/translate'; export type LocaleData = { code: string, name: string, englishName: string, progress: number, isReleased: boolean, }; export type LocalesMap = { [code: string]: LocaleData }; type OwnProps = {| onClose: () => void, langs: LocalesMap, emptyCaptions: Array<{ src: string, caption: string, }>, |}; type Props = { ...OwnProps, intl: IntlShape, selectedLocale: string, changeLang: (lang: string) => void, }; class LanguageSwitcher extends Component< Props, { filter: string, filteredLangs: LocalesMap, }, > { state = { filter: '', filteredLangs: this.props.langs, }; static defaultProps = { langs: LANGS, onClose() {}, }; render() { const { selectedLocale, onClose, intl } = this.props; const { filteredLangs } = this.state; return (
); } onChangeLang = this.changeLang.bind(this); changeLang(lang: string) { this.props.changeLang(lang); setTimeout(this.props.onClose, 300); } onFilterUpdate = (event: SyntheticInputEvent