lbry-desktop/ui/page/search/index.js

48 lines
1.5 KiB
JavaScript
Raw Normal View History

import { connect } from 'react-redux';
import * as SETTINGS from 'constants/settings';
2019-06-11 14:10:58 -04:00
import { doSearch, selectIsSearching, makeSelectSearchUris, makeSelectQueryWithOptions, doToast } from 'lbry-redux';
import { makeSelectClientSetting } from 'redux/selectors/settings';
import { selectUserVerifiedEmail } from 'redux/selectors/user';
2019-06-11 14:10:58 -04:00
import analytics from 'analytics';
import SearchPage from './view';
2017-05-05 15:01:16 +07:00
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,
2020-03-26 17:47:07 -04:00
isAuthenticated: selectUserVerifiedEmail(state),
};
};
2017-05-05 15:01:16 +07:00
2019-06-11 14:10:58 -04:00
const perform = dispatch => ({
search: (query, options) => dispatch(doSearch(query, options)),
2019-06-11 14:10:58 -04:00
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.'
),
})
);
},
});
2017-05-05 15:01:16 +07:00
2020-03-26 17:47:07 -04:00
export default connect(select, perform)(SearchPage);