mastodon/app/assets/javascripts/components/features/ui/containers/compose_form_container.jsx

43 lines
1.1 KiB
JavaScript

import { connect } from 'react-redux';
import ComposeForm from '../components/compose_form';
import { changeCompose, submitCompose, cancelReplyCompose } from '../../../actions/compose';
function selectStatus(state) {
let statusId = state.getIn(['compose', 'in_reply_to'], null);
if (statusId === null) {
return null;
}
let status = state.getIn(['timelines', 'statuses', statusId]);
status = status.set('account', state.getIn(['timelines', 'accounts', status.get('account')]));
return status;
};
const mapStateToProps = function (state, props) {
return {
text: state.getIn(['compose', 'text']),
is_submitting: state.getIn(['compose', 'is_submitting']),
in_reply_to: selectStatus(state)
};
};
const mapDispatchToProps = function (dispatch) {
return {
onChange: function (text) {
dispatch(changeCompose(text));
},
onSubmit: function () {
dispatch(submitCompose());
},
onCancelReply: function () {
dispatch(cancelReplyCompose());
}
}
};
export default connect(mapStateToProps, mapDispatchToProps)(ComposeForm);