import { connect } from 'react-redux'; import * as SETTINGS from 'constants/settings'; import { doSearch, selectIsSearching, makeSelectSearchUris, makeSelectQueryWithOptions, doToast } from 'lbry-redux'; import { makeSelectClientSetting } from 'redux/selectors/settings'; import { selectUserVerifiedEmail } from 'lbryinc'; import analytics from 'analytics'; import SearchPage from './view'; const select = state => { const showMature = makeSelectClientSetting(SETTINGS.SHOW_MATURE)(state); const query = makeSelectQueryWithOptions( null, showMature === false ? { nsfw: false, isBackgroundSearch: false } : { isBackgroundSearch: false } )(state); const uris = makeSelectSearchUris(query)(state); return { isSearching: selectIsSearching(state), showNsfw: makeSelectClientSetting(SETTINGS.SHOW_MATURE)(state), uris: uris, isAuthenticated: selectUserVerifiedEmail(state), }; }; const perform = dispatch => ({ search: (query, options) => dispatch(doSearch(query, options)), onFeedbackPositive: query => { analytics.apiSearchFeedback(query, 1); dispatch( doToast({ message: __('Thanks for the feedback! You help make the app better for everyone.'), }) ); }, onFeedbackNegative: query => { analytics.apiSearchFeedback(query, 0); dispatch( doToast({ message: __( 'Thanks for the feedback. Mark has been notified and is currently walking over to his computer to work on this.' ), }) ); }, }); export default connect(select, perform)(SearchPage);