You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.3 KiB

  1. import { connect } from 'react-redux';
  2. import PollForm from '../components/poll_form';
  3. import { addPollOption, removePollOption, changePollOption, changePollSettings } from '../../../actions/compose';
  4. import {
  5. clearComposeSuggestions,
  6. fetchComposeSuggestions,
  7. selectComposeSuggestion,
  8. } from '../../../actions/compose';
  9. const mapStateToProps = state => ({
  10. suggestions: state.getIn(['compose', 'suggestions']),
  11. options: state.getIn(['compose', 'poll', 'options']),
  12. expiresIn: state.getIn(['compose', 'poll', 'expires_in']),
  13. isMultiple: state.getIn(['compose', 'poll', 'multiple']),
  14. });
  15. const mapDispatchToProps = dispatch => ({
  16. onAddOption(title) {
  17. dispatch(addPollOption(title));
  18. },
  19. onRemoveOption(index) {
  20. dispatch(removePollOption(index));
  21. },
  22. onChangeOption(index, title) {
  23. dispatch(changePollOption(index, title));
  24. },
  25. onChangeSettings(expiresIn, isMultiple) {
  26. dispatch(changePollSettings(expiresIn, isMultiple));
  27. },
  28. onClearSuggestions () {
  29. dispatch(clearComposeSuggestions());
  30. },
  31. onFetchSuggestions (token) {
  32. dispatch(fetchComposeSuggestions(token));
  33. },
  34. onSuggestionSelected (position, token, accountId, path) {
  35. dispatch(selectComposeSuggestion(position, token, accountId, path));
  36. },
  37. });
  38. export default connect(mapStateToProps, mapDispatchToProps)(PollForm);