MainNavBars applied to Search

This commit is contained in:
nklhrstv 2020-02-25 16:55:05 +02:00
parent 88075232bc
commit 905be0c7bd
3 changed files with 20 additions and 43 deletions

View file

@ -10,12 +10,13 @@ const TABS = [
{ id: 'library', label: 'Library', icon: 'ic_library', href: '#/library' } { id: 'library', label: 'Library', icon: 'ic_library', href: '#/library' }
]; ];
const MainNavBars = React.memo(({ className, route, children }) => { const MainNavBars = React.memo(({ className, route, query, children }) => {
return ( return (
<div className={classnames(className, styles['main-nav-bars-container'])}> <div className={classnames(className, styles['main-nav-bars-container'])}>
<HorizontalNavBar <HorizontalNavBar
className={styles['horizontal-nav-bar']} className={styles['horizontal-nav-bar']}
route={route} route={route}
query={query}
backButton={false} backButton={false}
searchBar={true} searchBar={true}
addonsButton={true} addonsButton={true}
@ -37,6 +38,7 @@ MainNavBars.displayName = 'MainNavBars';
MainNavBars.propTypes = { MainNavBars.propTypes = {
className: PropTypes.string, className: PropTypes.string,
route: PropTypes.string, route: PropTypes.string,
query: PropTypes.string,
children: PropTypes.node children: PropTypes.node
}; };

View file

@ -1,37 +1,26 @@
const React = require('react'); const React = require('react');
const PropTypes = require('prop-types'); const PropTypes = require('prop-types');
const Icon = require('stremio-icons/dom'); const Icon = require('stremio-icons/dom');
const { HorizontalNavBar, MainVerticalNavBar, MetaRow } = require('stremio/common'); const { MainNavBars, MetaRow } = require('stremio/common');
const useSearch = require('./useSearch'); const useSearch = require('./useSearch');
const styles = require('./styles'); const styles = require('./styles');
const Search = ({ queryParams }) => { const Search = ({ queryParams }) => {
const search = useSearch(queryParams); const search = useSearch(queryParams);
return ( const query = React.useMemo(() => {
<div className={styles['search-container']}> return search.selected !== null ?
<HorizontalNavBar search.selected.extra.reduce((query, [name, value]) => {
className={styles['horizontal-nav-bar']} if (name === 'search') {
route={'search'} return value;
query={
search.selected !== null ?
search.selected.extra.reduce((query, [name, value]) => {
if (name === 'search') {
return value;
}
return query;
}, null)
:
null
} }
backButton={false}
searchBar={true} return query;
addonsButton={true} }, null)
fullscreenButton={true} :
notificationsMenu={true} null;
navMenu={true} }, [search.selected]);
/> return (
<MainVerticalNavBar className={styles['vertical-nav-bar']} route={'search'} /> <MainNavBars className={styles['search-container']} route={'search'} query={query}>
<div className={styles['search-content']}> <div className={styles['search-content']}>
{ {
search.selected === null || search.selected.extra.every(([name]) => name !== 'search') ? search.selected === null || search.selected.extra.every(([name]) => name !== 'search') ?
@ -89,7 +78,7 @@ const Search = ({ queryParams }) => {
}) })
} }
</div> </div>
</div> </MainNavBars>
); );
}; };

View file

@ -12,27 +12,13 @@
} }
.search-container { .search-container {
display: grid;
width: 100%; width: 100%;
height: 100%; height: 100%;
grid-template-columns: auto 1fr;
grid-template-rows: auto 1fr;
grid-template-areas:
"horizontal-nav-bar horizontal-nav-bar"
"vertical-nav-bar search-content";
background-color: @color-background-dark2; background-color: @color-background-dark2;
.horizontal-nav-bar {
grid-area: horizontal-nav-bar;
}
.vertical-nav-bar {
grid-area: vertical-nav-bar;
}
.search-content { .search-content {
grid-area: search-content; width: 100%;
height: 100%;
overflow-y: auto; overflow-y: auto;
.search-row, .search-row-placeholder { .search-row, .search-row-placeholder {