glitch-soc/mastodon

View on GitHub
app/javascript/flavours/glitch/features/compose/containers/search_container.js

Summary

Maintainability
B
6 hrs
Test Coverage
import { createSelector } from '@reduxjs/toolkit';
import { connect } from 'react-redux';

import {
  changeSearch,
  clearSearch,
  submitSearch,
  showSearch,
  openURL,
  clickSearchResult,
  forgetSearchResult,
} from 'flavours/glitch/actions/search';

import Search from '../components/search';

const getRecentSearches = createSelector(
  state => state.getIn(['search', 'recent']),
  recent => recent.reverse(),
);

const mapStateToProps = state => ({
  value: state.getIn(['search', 'value']),
  submitted: state.getIn(['search', 'submitted']),
  recent: getRecentSearches(state),
});

const mapDispatchToProps = dispatch => ({

  onChange (value) {
    dispatch(changeSearch(value));
  },

  onClear () {
    dispatch(clearSearch());
  },

  onSubmit (type) {
    dispatch(submitSearch(type));
  },

  onShow () {
    dispatch(showSearch());
  },

  onOpenURL (q, routerHistory) {
    dispatch(openURL(q, routerHistory));
  },

  onClickSearchResult (q, type) {
    dispatch(clickSearchResult(q, type));
  },

  onForgetSearchResult (q) {
    dispatch(forgetSearchResult(q));
  },

});

export default connect(mapStateToProps, mapDispatchToProps)(Search);