// 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";
import { connect } from "react-redux";
import Toggle from "react-toggle";
// Components.
import { IconButton } from "flavours/glitch/components/icon_button";
import { pollLimits } from "flavours/glitch/initial_state";
import DropdownContainer from "../containers/dropdown_container";
import LanguageDropdown from "../containers/language_dropdown_container";
import PrivacyDropdownContainer from "../containers/privacy_dropdown_container";
import TextIconButton from "./text_icon_button";
// Utils.
// Messages.
const messages = defineMessages({
advanced_options_icon_title: {
defaultMessage: "Advanced options",
id: "advanced_options.icon_title",
},
attach: {
defaultMessage: "Attach...",
id: "compose.attach",
},
content_type: {
defaultMessage: "Content type",
id: "content-type.change",
},
doodle: {
defaultMessage: "Draw something",
id: "compose.attach.doodle",
},
html: {
defaultMessage: "HTML",
id: "compose.content-type.html",
},
local_only_long: {
defaultMessage: "Do not post to other instances",
id: "advanced_options.local-only.long",
},
local_only_short: {
defaultMessage: "Local-only",
id: "advanced_options.local-only.short",
},
markdown: {
defaultMessage: "Markdown",
id: "compose.content-type.markdown",
},
plain: {
defaultMessage: "Plain text",
id: "compose.content-type.plain",
},
spoiler: {
defaultMessage: "Hide text behind warning",
id: "compose_form.spoiler",
},
threaded_mode_long: {
defaultMessage: "Automatically opens a reply on posting",
id: "advanced_options.threaded_mode.long",
},
threaded_mode_short: {
defaultMessage: "Threaded mode",
id: "advanced_options.threaded_mode.short",
},
upload: {
defaultMessage: "Upload a file",
id: "compose.attach.upload",
},
add_poll: {
defaultMessage: "Add a poll",
id: "poll_button.add_poll",
},
remove_poll: {
defaultMessage: "Remove poll",
id: "poll_button.remove_poll",
},
});
const mapStateToProps = (state, { name }) => ({
checked: state.getIn(["compose", "advanced_options", name]),
});
class ToggleOptionImpl extends ImmutablePureComponent {
static propTypes = {
name: PropTypes.string.isRequired,
checked: PropTypes.bool,
onChangeAdvancedOption: PropTypes.func.isRequired,
};
handleChange = () => {
this.props.onChangeAdvancedOption(this.props.name);
};
render() {
const { meta, text, checked } = this.props;
return (
<>