1ff70886a1
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>
62 lines
1.5 KiB
React
62 lines
1.5 KiB
React
// Package imports.
|
|
import PropTypes from "prop-types";
|
|
|
|
import { defineMessages, injectIntl } from "react-intl";
|
|
|
|
import ImmutablePropTypes from "react-immutable-proptypes";
|
|
import ImmutablePureComponent from "react-immutable-pure-component";
|
|
|
|
// Components.
|
|
import { Icon } from "flavours/glitch/components/icon";
|
|
// Messages.
|
|
const messages = defineMessages({
|
|
localOnly: {
|
|
defaultMessage: "This post is local-only",
|
|
id: "advanced_options.local-only.tooltip",
|
|
},
|
|
threadedMode: {
|
|
defaultMessage: "Threaded mode enabled",
|
|
id: "advanced_options.threaded_mode.tooltip",
|
|
},
|
|
});
|
|
|
|
// We use an array of tuples here instead of an object because it
|
|
// preserves order.
|
|
const iconMap = [
|
|
["do_not_federate", "home", messages.localOnly],
|
|
["threaded_mode", "comments", messages.threadedMode],
|
|
];
|
|
|
|
class TextareaIcons extends ImmutablePureComponent {
|
|
|
|
static propTypes = {
|
|
advancedOptions: ImmutablePropTypes.map,
|
|
intl: PropTypes.object.isRequired,
|
|
};
|
|
|
|
render () {
|
|
const { advancedOptions, intl } = this.props;
|
|
return (
|
|
<div className='compose-form__textarea-icons'>
|
|
{advancedOptions ? iconMap.map(
|
|
([key, icon, message]) => advancedOptions.get(key) ? (
|
|
<span
|
|
className='textarea_icon'
|
|
key={key}
|
|
title={intl.formatMessage(message)}
|
|
>
|
|
<Icon
|
|
fixedWidth
|
|
id={icon}
|
|
/>
|
|
</span>
|
|
) : null,
|
|
) : null}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
}
|
|
|
|
export default injectIntl(TextareaIcons);
|