mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-21 11:42:05 +00:00
MainNavBars applied to Search
This commit is contained in:
parent
88075232bc
commit
905be0c7bd
3 changed files with 20 additions and 43 deletions
|
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue