43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			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);
 |