add <select> to settings pane
This commit is contained in:
@@ -6,6 +6,7 @@ import { defineMessages, FormattedMessage, injectIntl } from "react-intl";
|
||||
|
||||
import ImmutablePropTypes from "react-immutable-proptypes";
|
||||
|
||||
import { languages as preloadedLanguages } from "flavours/glitch/initial_state";
|
||||
|
||||
// Our imports
|
||||
import LocalSettingsPageItem from "./item";
|
||||
@@ -35,6 +36,12 @@ const messages = defineMessages({
|
||||
direct: { id: "privacy.direct.short", defaultMessage: "Mentioned people only" },
|
||||
});
|
||||
|
||||
const langs = []
|
||||
|
||||
for (const lang of preloadedLanguages) {
|
||||
langs.push({"value": lang[0], "label": lang[1]})
|
||||
}
|
||||
|
||||
class LocalSettingsPage extends PureComponent {
|
||||
|
||||
static propTypes = {
|
||||
@@ -203,6 +210,16 @@ class LocalSettingsPage extends PureComponent {
|
||||
({ intl, onChange, settings }) => (
|
||||
<div className='glitch local-settings__page compose_box_opts'>
|
||||
<h1><FormattedMessage id='settings.compose_box_opts' defaultMessage='Compose box' /></h1>
|
||||
<LocalSettingsPageItem
|
||||
settings={settings}
|
||||
item={["default_language"]}
|
||||
id='mastodon-settings--default-language'
|
||||
select={langs}
|
||||
onChange={onChange}
|
||||
>
|
||||
<FormattedMessage id='settings.default_language' defaultMessage='Default language for new toots' />
|
||||
</LocalSettingsPageItem>
|
||||
|
||||
<LocalSettingsPageItem
|
||||
settings={settings}
|
||||
item={["always_show_spoilers_field"]}
|
||||
|
||||
@@ -39,7 +39,7 @@ export default class LocalSettingsPageItem extends PureComponent {
|
||||
|
||||
render () {
|
||||
const { handleChange } = this;
|
||||
const { settings, item, id, inputProps, options, children, dependsOn, dependsOnNot, placeholder, disabled } = this.props;
|
||||
const { settings, item, id, inputProps, select, options, children, dependsOn, dependsOnNot, placeholder, disabled } = this.props;
|
||||
let enabled = !disabled;
|
||||
|
||||
if (dependsOn) {
|
||||
@@ -52,6 +52,31 @@ export default class LocalSettingsPageItem extends PureComponent {
|
||||
enabled = enabled && !settings.getIn(dependsOnNot[i]);
|
||||
}
|
||||
}
|
||||
|
||||
if (select && select.length > 0) {
|
||||
const currentValue = settings.getIn(item);
|
||||
const optionElems = select && select.length > 0 && select.map((opt) => {
|
||||
return (
|
||||
<option
|
||||
value={opt.value}
|
||||
selected={currentValue === opt.value}
|
||||
>
|
||||
{opt.label}
|
||||
</option>
|
||||
)
|
||||
})
|
||||
return (
|
||||
<div className='glitch local-settings__page__item select'>
|
||||
<fieldset>
|
||||
<label>Default language:
|
||||
<select>
|
||||
{optionElems}
|
||||
</select>
|
||||
</label>
|
||||
</fieldset>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (options && options.length > 0) {
|
||||
const currentValue = settings.getIn(item);
|
||||
|
||||
Reference in New Issue
Block a user