// 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 (
{advancedOptions ? iconMap.map( ([key, icon, message]) => advancedOptions.get(key) ? ( ) : null, ) : null}
); } } export default injectIntl(TextareaIcons);