From 7dbfce62b6debd2a18abc17c7633767ca6988af8 Mon Sep 17 00:00:00 2001 From: NikolaBorislavovHristov Date: Wed, 18 Dec 2019 16:59:24 +0200 Subject: [PATCH] useRouteActive dropped --- src/common/MainNavBar/MainNavBar.js | 18 ++++++--------- src/common/NavBar/NavBar.js | 21 +++++++++--------- src/common/NavBar/SearchBar/SearchBar.js | 28 +++++++++++------------- src/common/index.js | 2 -- src/common/useRouteActive.js | 14 ------------ src/routes/Board/Board.js | 2 +- src/routes/Discover/Discover.js | 2 +- src/routes/Library/Library.js | 2 +- src/routes/Search/Search.js | 2 +- 9 files changed, 35 insertions(+), 56 deletions(-) delete mode 100644 src/common/useRouteActive.js diff --git a/src/common/MainNavBar/MainNavBar.js b/src/common/MainNavBar/MainNavBar.js index 55bdce638..afbbce27b 100644 --- a/src/common/MainNavBar/MainNavBar.js +++ b/src/common/MainNavBar/MainNavBar.js @@ -3,22 +3,18 @@ const PropTypes = require('prop-types'); const NavBar = require('stremio/common/NavBar'); const TABS = [ - { id: 'board', label: 'Board', icon: 'ic_board', href: '#/' }, - { id: 'discover', label: 'Discover', icon: 'ic_discover', href: '#/discover' }, - { id: 'library', label: 'Library', icon: 'ic_library', href: '#/library' } + { route: 'board', label: 'Board', icon: 'ic_board', href: '#/' }, + { route: 'discover', label: 'Discover', icon: 'ic_discover', href: '#/discover' }, + { route: 'library', label: 'Library', icon: 'ic_library', href: '#/library' } ]; -const MainNavBar = React.memo(({ className, selected }) => { +const MainNavBar = React.memo(({ className, route }) => { return ( ({ - label, - icon, - href, - selected: id === selected - }))} + tabs={TABS} searchBar={true} addonsButton={true} fullscreenButton={true} @@ -32,7 +28,7 @@ MainNavBar.displayName = 'MainNavBar'; MainNavBar.propTypes = { className: PropTypes.string, - selected: PropTypes.string + route: PropTypes.string }; module.exports = MainNavBar; diff --git a/src/common/NavBar/NavBar.js b/src/common/NavBar/NavBar.js index 6fe9859ed..c6ca83ac2 100644 --- a/src/common/NavBar/NavBar.js +++ b/src/common/NavBar/NavBar.js @@ -9,7 +9,7 @@ const NotificationsMenu = require('./NotificationsMenu'); const NavMenu = require('./NavMenu'); const styles = require('./styles'); -const NavBar = React.memo(({ className, backButton, tabs, title, searchBar, addonsButton, fullscreenButton, notificationsMenu, navMenu }) => { +const NavBar = React.memo(({ className, route, backButton, tabs, title, searchBar, addonsButton, fullscreenButton, notificationsMenu, navMenu }) => { const backButtonOnClick = React.useCallback(() => { window.history.back(); }, []); @@ -28,15 +28,15 @@ const NavBar = React.memo(({ className, backButton, tabs, title, searchBar, addo } { Array.isArray(tabs) && tabs.length > 0 ? - tabs.slice(0, 4).map(({ href, icon, label, selected, onClick }, index) => ( + tabs.slice(0, 4).map((tab, index) => ( )) : @@ -46,7 +46,7 @@ const NavBar = React.memo(({ className, backButton, tabs, title, searchBar, addo searchBar ?
- +
: @@ -84,12 +84,13 @@ NavBar.displayName = 'NavBar'; NavBar.propTypes = { className: PropTypes.string, + route: PropTypes.string, backButton: PropTypes.bool, tabs: PropTypes.arrayOf(PropTypes.shape({ - icon: PropTypes.string, + route: PropTypes.string, label: PropTypes.string, + icon: PropTypes.string, href: PropTypes.string, - selected: PropTypes.bool, onClick: PropTypes.func })), title: PropTypes.string, diff --git a/src/common/NavBar/SearchBar/SearchBar.js b/src/common/NavBar/SearchBar/SearchBar.js index 2097c79af..84a264bae 100644 --- a/src/common/NavBar/SearchBar/SearchBar.js +++ b/src/common/NavBar/SearchBar/SearchBar.js @@ -6,44 +6,41 @@ const Icon = require('stremio-icons/dom'); const { useRouteFocused } = require('stremio-router'); const Button = require('stremio/common/Button'); const TextInput = require('stremio/common/TextInput'); -const routesRegexp = require('stremio/common/routesRegexp'); const useLocationHash = require('stremio/common/useLocationHash'); -const useRouteActive = require('stremio/common/useRouteActive'); const styles = require('./styles'); -const SearchBar = ({ className }) => { +const SearchBar = ({ className, active }) => { const locationHash = useLocationHash(); const routeFocused = useRouteFocused(); - const routeActive = useRouteActive(routesRegexp.search.regexp); const searchInputRef = React.useRef(null); const query = React.useMemo(() => { - if (routeActive) { + if (active) { const { search: locationSearch } = UrlUtils.parse(locationHash.slice(1)); const queryParams = new URLSearchParams(locationSearch); return queryParams.has('search') ? queryParams.get('search') : ''; } return ''; - }, [routeActive, locationHash]); + }, [active, locationHash]); const searchBarOnClick = React.useCallback(() => { - if (!routeActive) { + if (!active) { window.location = '#/search'; } - }, [routeActive]); + }, [active]); const queryInputOnSubmit = React.useCallback(() => { - if (routeActive) { + if (active) { window.location.replace(`#/search?search=${searchInputRef.current.value}`); } - }, [routeActive]); + }, [active]); React.useEffect(() => { - if (routeActive && routeFocused) { + if (active && routeFocused) { searchInputRef.current.focus(); } - }, [routeActive, routeFocused, query]); + }, [active, routeFocused, query]); return ( -