2016-10-30 17:13:05 +00:00
|
|
|
import { connect } from 'react-redux';
|
|
|
|
import ComposeForm from '../components/compose_form';
|
|
|
|
import {
|
|
|
|
changeCompose,
|
|
|
|
submitCompose,
|
|
|
|
cancelReplyCompose,
|
|
|
|
clearComposeSuggestions,
|
2016-11-12 13:33:21 +00:00
|
|
|
fetchComposeSuggestions,
|
2016-11-23 17:53:23 +00:00
|
|
|
selectComposeSuggestion,
|
2016-11-30 20:32:11 +00:00
|
|
|
changeComposeSensitivity,
|
2017-01-13 04:54:26 +00:00
|
|
|
changeComposeSpoilerness,
|
|
|
|
changeComposeSpoilerText,
|
2016-12-23 14:20:16 +00:00
|
|
|
changeComposeVisibility,
|
|
|
|
changeComposeListability
|
2016-10-30 17:13:05 +00:00
|
|
|
} from '../../../actions/compose';
|
|
|
|
import { makeGetStatus } from '../../../selectors';
|
2016-09-05 14:56:43 +00:00
|
|
|
|
2016-10-24 15:11:02 +00:00
|
|
|
const makeMapStateToProps = () => {
|
|
|
|
const getStatus = makeGetStatus();
|
|
|
|
|
|
|
|
const mapStateToProps = function (state, props) {
|
|
|
|
return {
|
|
|
|
text: state.getIn(['compose', 'text']),
|
2016-11-12 13:33:21 +00:00
|
|
|
suggestion_token: state.getIn(['compose', 'suggestion_token']),
|
2016-12-14 17:21:31 +00:00
|
|
|
suggestions: state.getIn(['compose', 'suggestions']),
|
2016-11-23 17:53:23 +00:00
|
|
|
sensitive: state.getIn(['compose', 'sensitive']),
|
2017-01-13 04:54:26 +00:00
|
|
|
spoiler: state.getIn(['compose', 'spoiler']),
|
|
|
|
spoiler_text: state.getIn(['compose', 'spoiler_text']),
|
2016-12-23 14:20:16 +00:00
|
|
|
unlisted: state.getIn(['compose', 'unlisted']),
|
2016-12-22 23:38:16 +00:00
|
|
|
private: state.getIn(['compose', 'private']),
|
2017-01-03 08:36:48 +00:00
|
|
|
fileDropDate: state.getIn(['compose', 'fileDropDate']),
|
2016-10-24 15:11:02 +00:00
|
|
|
is_submitting: state.getIn(['compose', 'is_submitting']),
|
|
|
|
is_uploading: state.getIn(['compose', 'is_uploading']),
|
2016-12-24 00:22:47 +00:00
|
|
|
in_reply_to: getStatus(state, state.getIn(['compose', 'in_reply_to'])),
|
2017-01-16 15:23:45 +00:00
|
|
|
media_count: state.getIn(['compose', 'media_attachments']).size,
|
|
|
|
me: state.getIn(['compose', 'me'])
|
2016-10-24 15:11:02 +00:00
|
|
|
};
|
2016-08-31 14:15:12 +00:00
|
|
|
};
|
2016-10-24 15:11:02 +00:00
|
|
|
|
|
|
|
return mapStateToProps;
|
2016-08-25 17:52:55 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
const mapDispatchToProps = function (dispatch) {
|
|
|
|
return {
|
2016-10-30 17:13:05 +00:00
|
|
|
onChange (text) {
|
2016-08-31 14:15:12 +00:00
|
|
|
dispatch(changeCompose(text));
|
|
|
|
},
|
|
|
|
|
2016-10-30 17:13:05 +00:00
|
|
|
onSubmit () {
|
2016-08-31 14:15:12 +00:00
|
|
|
dispatch(submitCompose());
|
2016-08-31 20:58:10 +00:00
|
|
|
},
|
|
|
|
|
2016-10-30 17:13:05 +00:00
|
|
|
onCancelReply () {
|
2016-08-31 20:58:10 +00:00
|
|
|
dispatch(cancelReplyCompose());
|
2016-10-30 17:13:05 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
onClearSuggestions () {
|
|
|
|
dispatch(clearComposeSuggestions());
|
|
|
|
},
|
|
|
|
|
|
|
|
onFetchSuggestions (token) {
|
|
|
|
dispatch(fetchComposeSuggestions(token));
|
2016-11-12 13:33:21 +00:00
|
|
|
},
|
|
|
|
|
2016-12-14 17:21:31 +00:00
|
|
|
onSuggestionSelected (position, token, accountId) {
|
|
|
|
dispatch(selectComposeSuggestion(position, token, accountId));
|
2016-11-23 17:53:23 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
onChangeSensitivity (checked) {
|
|
|
|
dispatch(changeComposeSensitivity(checked));
|
2016-11-30 20:32:11 +00:00
|
|
|
},
|
|
|
|
|
2017-01-13 04:54:26 +00:00
|
|
|
onChangeSpoilerness (checked) {
|
|
|
|
dispatch(changeComposeSpoilerness(checked));
|
|
|
|
},
|
|
|
|
|
|
|
|
onChangeSpoilerText (checked) {
|
|
|
|
dispatch(changeComposeSpoilerText(checked));
|
|
|
|
},
|
|
|
|
|
2016-11-30 20:32:11 +00:00
|
|
|
onChangeVisibility (checked) {
|
|
|
|
dispatch(changeComposeVisibility(checked));
|
2016-12-23 14:20:16 +00:00
|
|
|
},
|
2016-12-24 00:22:47 +00:00
|
|
|
|
2016-12-23 14:20:16 +00:00
|
|
|
onChangeListability (checked) {
|
|
|
|
dispatch(changeComposeListability(checked));
|
2016-08-25 17:52:55 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2016-10-24 15:11:02 +00:00
|
|
|
export default connect(makeMapStateToProps, mapDispatchToProps)(ComposeForm);
|