import { connect } from 'react-redux'; import ComposeForm from '../components/compose_form'; import { changeCompose, changeComposeSpoilerText, clearComposeSuggestions, fetchComposeSuggestions, insertEmojiCompose, selectComposeSuggestion, submitCompose, uploadCompose, } from '../../../actions/compose'; const mapStateToProps = state => ({ text : state.getIn(['compose', 'text']), suggestions : state.getIn(['compose', 'suggestions']), spoiler : state.getIn(['compose', 'spoiler']), spoilerText : state.getIn(['compose', 'spoiler_text']), privacy : state.getIn(['compose', 'privacy']), focusDate : state.getIn(['compose', 'focusDate']), caretPosition : state.getIn(['compose', 'caretPosition']), preselectDate : state.getIn(['compose', 'preselectDate']), isSubmitting : state.getIn(['compose', 'is_submitting']), isChangingUpload: state.getIn(['compose', 'is_changing_upload']), isUploading : state.getIn(['compose', 'is_uploading']), showSearch : state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']), anyMedia : state.getIn(['compose', 'media_attachments']).size > 0, }); const mapDispatchToProps = (dispatch) => ({ onChange(text) { dispatch(changeCompose(text)); }, onSubmit(router) { dispatch(submitCompose(router)); }, onClearSuggestions() { dispatch(clearComposeSuggestions()); }, onFetchSuggestions(token) { dispatch(fetchComposeSuggestions(token)); }, onSuggestionSelected(position, token, suggestion, path) { dispatch(selectComposeSuggestion(position, token, suggestion, path)); }, onChangeSpoilerText(checked) { dispatch(changeComposeSpoilerText(checked)); }, onPaste(files) { dispatch(uploadCompose(files)); }, onPickEmoji(position, data, needsSpace) { dispatch(insertEmojiCompose(position, data, needsSpace)); }, }); export default connect(mapStateToProps, mapDispatchToProps)(ComposeForm);