|
|
@ -3,7 +3,6 @@ import ComposeForm from '../components/compose_form'; |
|
|
|
import { |
|
|
|
changeCompose, |
|
|
|
submitCompose, |
|
|
|
cancelReplyCompose, |
|
|
|
clearComposeSuggestions, |
|
|
|
fetchComposeSuggestions, |
|
|
|
selectComposeSuggestion, |
|
|
@ -13,83 +12,69 @@ import { |
|
|
|
changeComposeVisibility, |
|
|
|
changeComposeListability |
|
|
|
} from '../../../actions/compose'; |
|
|
|
import { makeGetStatus } from '../../../selectors'; |
|
|
|
|
|
|
|
const makeMapStateToProps = () => { |
|
|
|
const getStatus = makeGetStatus(); |
|
|
|
const mapStateToProps = (state, props) => { |
|
|
|
const mentionedUsernamesWithDomains = state.getIn(['compose', 'text']).match(/(?:^|[^\/\w])@([a-z0-9_]+@[a-z0-9\.\-]+)/ig); |
|
|
|
|
|
|
|
const mapStateToProps = function (state, props) { |
|
|
|
const mentionedUsernamesWithDomains = state.getIn(['compose', 'text']).match(/(?:^|[^\/\w])@([a-z0-9_]+@[a-z0-9\.\-]+)/ig); |
|
|
|
|
|
|
|
return { |
|
|
|
text: state.getIn(['compose', 'text']), |
|
|
|
suggestion_token: state.getIn(['compose', 'suggestion_token']), |
|
|
|
suggestions: state.getIn(['compose', 'suggestions']), |
|
|
|
sensitive: state.getIn(['compose', 'sensitive']), |
|
|
|
spoiler: state.getIn(['compose', 'spoiler']), |
|
|
|
spoiler_text: state.getIn(['compose', 'spoiler_text']), |
|
|
|
unlisted: state.getIn(['compose', 'unlisted'], ), |
|
|
|
private: state.getIn(['compose', 'private']), |
|
|
|
fileDropDate: state.getIn(['compose', 'fileDropDate']), |
|
|
|
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'])), |
|
|
|
media_count: state.getIn(['compose', 'media_attachments']).size, |
|
|
|
me: state.getIn(['compose', 'me']), |
|
|
|
needsPrivacyWarning: state.getIn(['compose', 'private']) && mentionedUsernamesWithDomains !== null, |
|
|
|
mentionedDomains: mentionedUsernamesWithDomains !== null ? [...new Set(mentionedUsernamesWithDomains.map(item => item.split('@')[2]))] : [] |
|
|
|
}; |
|
|
|
return { |
|
|
|
text: state.getIn(['compose', 'text']), |
|
|
|
suggestion_token: state.getIn(['compose', 'suggestion_token']), |
|
|
|
suggestions: state.getIn(['compose', 'suggestions']), |
|
|
|
sensitive: state.getIn(['compose', 'sensitive']), |
|
|
|
spoiler: state.getIn(['compose', 'spoiler']), |
|
|
|
spoiler_text: state.getIn(['compose', 'spoiler_text']), |
|
|
|
unlisted: state.getIn(['compose', 'unlisted'], ), |
|
|
|
private: state.getIn(['compose', 'private']), |
|
|
|
fileDropDate: state.getIn(['compose', 'fileDropDate']), |
|
|
|
focusDate: state.getIn(['compose', 'focusDate']), |
|
|
|
preselectDate: state.getIn(['compose', 'preselectDate']), |
|
|
|
is_submitting: state.getIn(['compose', 'is_submitting']), |
|
|
|
is_uploading: state.getIn(['compose', 'is_uploading']), |
|
|
|
media_count: state.getIn(['compose', 'media_attachments']).size, |
|
|
|
me: state.getIn(['compose', 'me']), |
|
|
|
needsPrivacyWarning: state.getIn(['compose', 'private']) && mentionedUsernamesWithDomains !== null, |
|
|
|
mentionedDomains: mentionedUsernamesWithDomains !== null ? [...new Set(mentionedUsernamesWithDomains.map(item => item.split('@')[2]))] : [] |
|
|
|
}; |
|
|
|
|
|
|
|
return mapStateToProps; |
|
|
|
}; |
|
|
|
|
|
|
|
const mapDispatchToProps = function (dispatch) { |
|
|
|
return { |
|
|
|
onChange (text) { |
|
|
|
dispatch(changeCompose(text)); |
|
|
|
}, |
|
|
|
const mapDispatchToProps = (dispatch) => ({ |
|
|
|
|
|
|
|
onSubmit () { |
|
|
|
dispatch(submitCompose()); |
|
|
|
}, |
|
|
|
onChange (text) { |
|
|
|
dispatch(changeCompose(text)); |
|
|
|
}, |
|
|
|
|
|
|
|
onCancelReply () { |
|
|
|
dispatch(cancelReplyCompose()); |
|
|
|
}, |
|
|
|
onSubmit () { |
|
|
|
dispatch(submitCompose()); |
|
|
|
}, |
|
|
|
|
|
|
|
onClearSuggestions () { |
|
|
|
dispatch(clearComposeSuggestions()); |
|
|
|
}, |
|
|
|
onClearSuggestions () { |
|
|
|
dispatch(clearComposeSuggestions()); |
|
|
|
}, |
|
|
|
|
|
|
|
onFetchSuggestions (token) { |
|
|
|
dispatch(fetchComposeSuggestions(token)); |
|
|
|
}, |
|
|
|
onFetchSuggestions (token) { |
|
|
|
dispatch(fetchComposeSuggestions(token)); |
|
|
|
}, |
|
|
|
|
|
|
|
onSuggestionSelected (position, token, accountId) { |
|
|
|
dispatch(selectComposeSuggestion(position, token, accountId)); |
|
|
|
}, |
|
|
|
onSuggestionSelected (position, token, accountId) { |
|
|
|
dispatch(selectComposeSuggestion(position, token, accountId)); |
|
|
|
}, |
|
|
|
|
|
|
|
onChangeSensitivity (checked) { |
|
|
|
dispatch(changeComposeSensitivity(checked)); |
|
|
|
}, |
|
|
|
onChangeSensitivity (checked) { |
|
|
|
dispatch(changeComposeSensitivity(checked)); |
|
|
|
}, |
|
|
|
|
|
|
|
onChangeSpoilerness (checked) { |
|
|
|
dispatch(changeComposeSpoilerness(checked)); |
|
|
|
}, |
|
|
|
onChangeSpoilerness (checked) { |
|
|
|
dispatch(changeComposeSpoilerness(checked)); |
|
|
|
}, |
|
|
|
|
|
|
|
onChangeSpoilerText (checked) { |
|
|
|
dispatch(changeComposeSpoilerText(checked)); |
|
|
|
}, |
|
|
|
onChangeSpoilerText (checked) { |
|
|
|
dispatch(changeComposeSpoilerText(checked)); |
|
|
|
}, |
|
|
|
|
|
|
|
onChangeVisibility (checked) { |
|
|
|
dispatch(changeComposeVisibility(checked)); |
|
|
|
}, |
|
|
|
onChangeVisibility (checked) { |
|
|
|
dispatch(changeComposeVisibility(checked)); |
|
|
|
}, |
|
|
|
|
|
|
|
onChangeListability (checked) { |
|
|
|
dispatch(changeComposeListability(checked)); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}); |
|
|
|
|
|
|
|
export default connect(makeMapStateToProps, mapDispatchToProps)(ComposeForm); |
|
|
|
export default connect(mapStateToProps, mapDispatchToProps)(ComposeForm); |