Files
masto-fe-archos/app/javascript/mastodon/features/compose/containers/language_dropdown_container.js
2025-10-12 13:42:02 +02:00

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);