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 { IconButton } from "../../../components/icon_button"; const messages = defineMessages({ upload: { id: "upload_button.label", defaultMessage: "Add images, a video or an audio file" }, }); const makeMapStateToProps = () => { const mapStateToProps = state => ({ acceptContentTypes: state.getIn(["media_attachments", "accept_content_types"]), }); return mapStateToProps; }; const iconStyle = { height: null, lineHeight: "27px", }; class UploadButton extends ImmutablePureComponent { static propTypes = { disabled: PropTypes.bool, unavailable: PropTypes.bool, onSelectFile: PropTypes.func.isRequired, style: PropTypes.object, resetFileKey: PropTypes.number, acceptContentTypes: ImmutablePropTypes.listOf(PropTypes.string).isRequired, intl: PropTypes.object.isRequired, }; handleChange = (e) => { if (e.target.files.length > 0) { this.props.onSelectFile(e.target.files); } }; handleClick = () => { this.fileElement.click(); }; setRef = (c) => { this.fileElement = c; }; render () { const { intl, resetFileKey, unavailable, disabled, acceptContentTypes } = this.props; if (unavailable) { return null; } const message = intl.formatMessage(messages.upload); return (
); } } export default connect(makeMapStateToProps)(injectIntl(UploadButton));