2017-12-21 22:08:54 +01:00
|
|
|
import { connect } from 'react-redux';
|
2018-04-18 06:03:01 +02:00
|
|
|
import {
|
2018-05-16 20:32:25 +02:00
|
|
|
doFocusSearchInput,
|
|
|
|
doBlurSearchInput,
|
2019-03-28 17:53:13 +01:00
|
|
|
doUpdateSearchQuery,
|
2019-04-19 20:05:55 +02:00
|
|
|
doToast,
|
2019-03-28 17:53:13 +01:00
|
|
|
selectSearchValue,
|
|
|
|
selectSearchSuggestions,
|
|
|
|
selectSearchBarFocused,
|
2018-04-18 06:03:01 +02:00
|
|
|
} from 'lbry-redux';
|
2019-02-05 19:36:40 +01:00
|
|
|
import analytics from 'analytics';
|
2017-12-21 22:08:54 +01:00
|
|
|
import Wunderbar from './view';
|
2019-04-04 23:05:23 +02:00
|
|
|
import { withRouter } from 'react-router-dom';
|
2019-12-02 18:30:08 +01:00
|
|
|
import { formatLbryUrlForWeb } from 'util/url';
|
2017-05-04 05:44:08 +02:00
|
|
|
|
2019-03-28 17:53:13 +01:00
|
|
|
const select = state => ({
|
|
|
|
suggestions: selectSearchSuggestions(state),
|
|
|
|
searchQuery: selectSearchValue(state),
|
|
|
|
isFocused: selectSearchBarFocused(state),
|
|
|
|
});
|
2017-05-04 05:44:08 +02:00
|
|
|
|
2019-04-04 23:05:23 +02:00
|
|
|
const perform = (dispatch, ownProps) => ({
|
2019-02-18 18:24:56 +01:00
|
|
|
onSearch: query => {
|
2019-04-19 20:47:25 +02:00
|
|
|
ownProps.history.push({ pathname: `/$/search`, search: `?q=${encodeURIComponent(query)}` });
|
2019-07-04 13:05:21 +02:00
|
|
|
dispatch(doUpdateSearchQuery(query));
|
2019-02-05 19:36:40 +01:00
|
|
|
analytics.apiLogSearch();
|
2018-03-26 23:32:43 +02:00
|
|
|
},
|
2019-03-28 17:53:13 +01:00
|
|
|
onSubmit: uri => {
|
2019-12-02 18:30:08 +01:00
|
|
|
const path = formatLbryUrlForWeb(uri);
|
2019-04-04 23:05:23 +02:00
|
|
|
ownProps.history.push(path);
|
2019-03-28 17:53:13 +01:00
|
|
|
dispatch(doUpdateSearchQuery(''));
|
|
|
|
},
|
2018-03-26 23:32:43 +02:00
|
|
|
updateSearchQuery: query => dispatch(doUpdateSearchQuery(query)),
|
2019-04-19 20:05:55 +02:00
|
|
|
doShowSnackBar: message => dispatch(doToast({ isError: true, message })),
|
2018-05-16 20:32:25 +02:00
|
|
|
doFocus: () => dispatch(doFocusSearchInput()),
|
|
|
|
doBlur: () => dispatch(doBlurSearchInput()),
|
2017-06-06 06:21:55 +02:00
|
|
|
});
|
2017-05-04 05:44:08 +02:00
|
|
|
|
2019-04-04 23:05:23 +02:00
|
|
|
export default withRouter(
|
|
|
|
connect(
|
|
|
|
select,
|
|
|
|
perform
|
|
|
|
)(Wunderbar)
|
|
|
|
);
|