52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
import { connect } from 'react-redux';
|
|
|
|
import { openModal } from 'soapbox/actions/modals';
|
|
import { statusToMentionsAccountIdsArray } from 'soapbox/reducers/compose';
|
|
import { makeGetStatus } from 'soapbox/selectors';
|
|
import { getFeatures } from 'soapbox/utils/features';
|
|
|
|
import ReplyMentions from '../components/reply_mentions';
|
|
|
|
const makeMapStateToProps = () => {
|
|
const getStatus = makeGetStatus();
|
|
|
|
return state => {
|
|
const instance = state.get('instance');
|
|
const { explicitAddressing } = getFeatures(instance);
|
|
|
|
if (!explicitAddressing) {
|
|
return {
|
|
explicitAddressing: false,
|
|
};
|
|
}
|
|
|
|
const status = getStatus(state, { id: state.getIn(['compose', 'in_reply_to']) });
|
|
|
|
if (!status) {
|
|
return {
|
|
isReply: false,
|
|
};
|
|
}
|
|
const to = state.getIn(['compose', 'to']);
|
|
|
|
const me = state.get('me');
|
|
const account = state.getIn(['accounts', me]);
|
|
|
|
const parentTo = statusToMentionsAccountIdsArray(state, status, account);
|
|
|
|
return {
|
|
to,
|
|
parentTo,
|
|
isReply: true,
|
|
explicitAddressing: true,
|
|
};
|
|
};
|
|
};
|
|
|
|
const mapDispatchToProps = dispatch => ({
|
|
onOpenMentionsModal() {
|
|
dispatch(openModal('REPLY_MENTIONS'));
|
|
},
|
|
});
|
|
|
|
export default connect(makeMapStateToProps, mapDispatchToProps)(ReplyMentions);
|