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.

60 lines
1.1 KiB

import { createSelector } from '@reduxjs/toolkit';
10 years ago
import { connect } from 'react-redux';
10 years ago
import {
changeSearch,
9 years ago
clearSearch,
submitSearch,
showSearch,
openURL,
clickSearchResult,
forgetSearchResult,
} from 'mastodon/actions/search';
10 years ago
import Search from '../components/search';
const getRecentSearches = createSelector(
state => state.getIn(['search', 'recent']),
recent => recent.reverse(),
);
10 years ago
const mapStateToProps = state => ({
value: state.getIn(['search', 'value']),
submitted: state.getIn(['search', 'submitted']),
recent: getRecentSearches(state),
10 years ago
});
const mapDispatchToProps = dispatch => ({
onChange (value) {
dispatch(changeSearch(value));
},
onClear () {
9 years ago
dispatch(clearSearch());
10 years ago
},
onSubmit (type) {
dispatch(submitSearch(type));
10 years ago
},
9 years ago
onShow () {
dispatch(showSearch());
},
10 years ago
onOpenURL (q, routerHistory) {
dispatch(openURL(q, routerHistory));
},
onClickSearchResult (q, type) {
dispatch(clickSearchResult(q, type));
},
onForgetSearchResult (q) {
dispatch(forgetSearchResult(q));
},
10 years ago
});
export default connect(mapStateToProps, mapDispatchToProps)(Search);