diff --git a/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js b/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js index 08738bebf..8f0163177 100644 --- a/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js +++ b/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js @@ -101,11 +101,24 @@ const SearchBar = ({ className, query, active }) => { } { - searchHistory.items.length > 0 && historyActive && active ? + historyActive && active ?
+ { + localSearch.searchResults.length === 0 && searchHistory.items.length === 0 ? +
{t('Start typing ...')}
+ : + null + }
-
{t('STREMIO_TV_SEARCH_HISTORY_TITLE')}
- + { + searchHistory.items.length > 0 ? + +
{t('STREMIO_TV_SEARCH_HISTORY_TITLE')}
+ +
+ : + null + }
{searchHistory.items.slice(0, 8).map((item, index) => { @@ -113,6 +126,17 @@ const SearchBar = ({ className, query, active }) => { ); })} + { + localSearch.searchResults.length > 0 ? +
{t('Recommendations')}
+ : + null + } + {localSearch.searchResults.map((item, index) => { + return ( + + ); + })}
: diff --git a/src/common/NavBar/HorizontalNavBar/SearchBar/styles.less b/src/common/NavBar/HorizontalNavBar/SearchBar/styles.less index aa69f3490..64ca9e662 100644 --- a/src/common/NavBar/HorizontalNavBar/SearchBar/styles.less +++ b/src/common/NavBar/HorizontalNavBar/SearchBar/styles.less @@ -60,22 +60,27 @@ background-color: var(--modal-background-color); border-radius: var(--border-radius); + .search-history-label { + font-size: 0.9rem; + color: var(--primary-foreground-color); + } + .search-history-actions { display: flex; justify-content: space-between; width: 100%; opacity: 0.8; - margin-bottom: 1rem; + padding-bottom: 1rem; .search-history-label { - font-size: 0.8rem; + font-size: 0.9rem; color: var(--primary-foreground-color); } .search-history-clear { cursor: pointer; color: var(--primary-foreground-color); - font-size: 0.8rem; + font-size: 0.9rem; &:hover { opacity: 0.6; @@ -84,14 +89,21 @@ } .search-history-items { - width: 90%; + width: 100; margin: 0 auto; display: flex; justify-content: center; align-items: flex-start; flex-direction: column; + .search-history-label { + font-size: 0.9rem; + color: var(--primary-foreground-color); + margin: 1rem 0; + } + .search-history-item { + width: 90%; color: var(--primary-foreground-color); text-align: left; text-decoration: none; diff --git a/src/common/NavBar/HorizontalNavBar/SearchBar/useLocalSearch.js b/src/common/NavBar/HorizontalNavBar/SearchBar/useLocalSearch.js index b85577531..c43959735 100644 --- a/src/common/NavBar/HorizontalNavBar/SearchBar/useLocalSearch.js +++ b/src/common/NavBar/HorizontalNavBar/SearchBar/useLocalSearch.js @@ -7,9 +7,16 @@ const useModelState = require('../../../../common/useModelState'); const useLocalSearch = (query) => { const { core } = useServices(); - const { searchResults } = useModelState({ model: 'local_search' }); + const action = React.useMemo(() => ({ + action: 'Load', + args: { + model: 'LocalSearch', + } + }), []); - const dispatchSearch = React.useCallback(() => { + const { searchResults } = useModelState({ model: 'local_search', action }); + + const dispatchSearch = React.useEffect(() => { core.transport.dispatch({ action: 'Search', args: { @@ -17,7 +24,7 @@ const useLocalSearch = (query) => { args: { searchQuery: query, maxResults: 5 - }, + } }, }); }, [query]);