diff --git a/src/common/NavBar/HorizontalNavBar/NavMenu/NavMenu.js b/src/common/NavBar/HorizontalNavBar/NavMenu/NavMenu.js index 3a7b3a73c..362b8736f 100644 --- a/src/common/NavBar/HorizontalNavBar/NavMenu/NavMenu.js +++ b/src/common/NavBar/HorizontalNavBar/NavMenu/NavMenu.js @@ -3,22 +3,14 @@ const React = require('react'); const PropTypes = require('prop-types'); const classnames = require('classnames'); -const Icon = require('@stremio/stremio-icons/dom'); const { useRouteFocused } = require('stremio-router'); -const { useServices } = require('stremio/services'); -const Button = require('stremio/common/Button'); const Popup = require('stremio/common/Popup'); const useBinaryState = require('stremio/common/useBinaryState'); -const useFullscreen = require('stremio/common/useFullscreen'); -const useProfile = require('stremio/common/useProfile'); -const styles = require('./styles'); +const NavMenuContent = require('./NavMenuContent'); const NavMenu = (props) => { - const { core } = useServices(); const routeFocused = useRouteFocused(); - const profile = useProfile(); const [menuOpen, , closeMenu, toggleMenu] = useBinaryState(false); - const [fullscreen, requestFullscreen, exitFullscreen] = useFullscreen(); const popupLabelOnClick = React.useCallback((event) => { if (!event.nativeEvent.togglePopupPrevented) { toggleMenu(); @@ -27,14 +19,6 @@ const NavMenu = (props) => { const popupMenuOnClick = React.useCallback((event) => { event.nativeEvent.togglePopupPrevented = true; }, []); - const logoutButtonOnClick = React.useCallback(() => { - core.transport.dispatch({ - action: 'Ctx', - args: { - action: 'Logout' - } - }); - }, []); const renderLabel = React.useMemo(() => ({ ref, className, children }) => ( props.renderLabel({ ref, @@ -44,65 +28,8 @@ const NavMenu = (props) => { }) ), [menuOpen, popupLabelOnClick, props.renderLabel]); const renderMenu = React.useCallback(() => ( -
-
-
-
-
{profile.auth === null ? 'Anonymous user' : profile.auth.user.email}
-
- -
-
- -
-
- - - - - -
-
- - - -
-
- ), [profile, fullscreen]); + + ), []); React.useEffect(() => { if (!routeFocused) { closeMenu(); diff --git a/src/common/NavBar/HorizontalNavBar/NavMenu/NavMenuContent.js b/src/common/NavBar/HorizontalNavBar/NavMenu/NavMenuContent.js new file mode 100644 index 000000000..bc680c4d9 --- /dev/null +++ b/src/common/NavBar/HorizontalNavBar/NavMenu/NavMenuContent.js @@ -0,0 +1,96 @@ +// Copyright (C) 2017-2022 Smart code 203358507 + +const React = require('react'); +const PropTypes = require('prop-types'); +const classnames = require('classnames'); +const Icon = require('@stremio/stremio-icons/dom'); +const { useServices } = require('stremio/services'); +const Button = require('stremio/common/Button'); +const useFullscreen = require('stremio/common/useFullscreen'); +const useProfile = require('stremio/common/useProfile'); +const { withModelSuspender } = require('stremio/common/useModelState'); +const styles = require('./styles'); + +const NavMenuContent = ({ onClick }) => { + const { core } = useServices(); + const profile = useProfile(); + const [fullscreen, requestFullscreen, exitFullscreen] = useFullscreen(); + const logoutButtonOnClick = React.useCallback(() => { + core.transport.dispatch({ + action: 'Ctx', + args: { + action: 'Logout' + } + }); + }, []); + return ( +
+
+
+
+
{profile.auth === null ? 'Anonymous user' : profile.auth.user.email}
+
+ +
+
+ +
+
+ + + + + +
+
+ + + +
+
+ ); +}; + +NavMenuContent.propTypes = { + onClick: PropTypes.func +}; + +const NavMenuContentFallback = () => ( +
+); + +module.exports = withModelSuspender(NavMenuContent, NavMenuContentFallback);