Co-authored-by: tobi <tobi.smethurst@protonmail.com> Reviewed-on: https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/88 Co-authored-by: Zoë Bijl <moiety@noreply.codeberg.org> Co-committed-by: Zoë Bijl <moiety@noreply.codeberg.org>
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
import { Map as ImmutableMap } from "immutable";
|
|
import { connect } from "react-redux";
|
|
import { createSelector } from "reselect";
|
|
|
|
import { changeComposeLanguage } from "mastodon/actions/compose";
|
|
import { useLanguage } from "mastodon/actions/languages";
|
|
|
|
import LanguageDropdown from "../components/language_dropdown";
|
|
|
|
const getFrequentlyUsedLanguages = createSelector([
|
|
state => state.getIn(["settings", "frequentlyUsedLanguages"], ImmutableMap()),
|
|
], languageCounters => (
|
|
languageCounters.keySeq()
|
|
.sort((a, b) => languageCounters.get(a) - languageCounters.get(b))
|
|
.reverse()
|
|
.toArray()
|
|
));
|
|
|
|
const mapStateToProps = state => ({
|
|
frequentlyUsedLanguages: getFrequentlyUsedLanguages(state),
|
|
value: state.getIn(["compose", "language"]),
|
|
});
|
|
|
|
const mapDispatchToProps = dispatch => ({
|
|
|
|
onChange (value) {
|
|
dispatch(changeComposeLanguage(value));
|
|
},
|
|
|
|
onClose (value) {
|
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
dispatch(useLanguage(value));
|
|
},
|
|
|
|
});
|
|
|
|
export default connect(mapStateToProps, mapDispatchToProps)(LanguageDropdown);
|