diff options
Diffstat (limited to 'app/assets/javascripts/components/features/compose/containers/compose_form_container.jsx')
-rw-r--r-- | app/assets/javascripts/components/features/compose/containers/compose_form_container.jsx | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/app/assets/javascripts/components/features/compose/containers/compose_form_container.jsx b/app/assets/javascripts/components/features/compose/containers/compose_form_container.jsx new file mode 100644 index 000000000..87bcd6b99 --- /dev/null +++ b/app/assets/javascripts/components/features/compose/containers/compose_form_container.jsx @@ -0,0 +1,58 @@ +import { connect } from 'react-redux'; +import ComposeForm from '../components/compose_form'; +import { + changeCompose, + submitCompose, + cancelReplyCompose, + clearComposeSuggestions, + fetchComposeSuggestions, + selectComposeSuggestion +} from '../../../actions/compose'; +import { makeGetStatus } from '../../../selectors'; + +const makeMapStateToProps = () => { + const getStatus = makeGetStatus(); + + const mapStateToProps = function (state, props) { + return { + text: state.getIn(['compose', 'text']), + suggestion_token: state.getIn(['compose', 'suggestion_token']), + suggestions: state.getIn(['compose', 'suggestions']).toJS(), + is_submitting: state.getIn(['compose', 'is_submitting']), + is_uploading: state.getIn(['compose', 'is_uploading']), + in_reply_to: getStatus(state, state.getIn(['compose', 'in_reply_to'])) + }; + }; + + return mapStateToProps; +}; + +const mapDispatchToProps = function (dispatch) { + return { + onChange (text) { + dispatch(changeCompose(text)); + }, + + onSubmit () { + dispatch(submitCompose()); + }, + + onCancelReply () { + dispatch(cancelReplyCompose()); + }, + + onClearSuggestions () { + dispatch(clearComposeSuggestions()); + }, + + onFetchSuggestions (token) { + dispatch(fetchComposeSuggestions(token)); + }, + + onSuggestionSelected (position, accountId) { + dispatch(selectComposeSuggestion(position, accountId)); + } + } +}; + +export default connect(makeMapStateToProps, mapDispatchToProps)(ComposeForm); |