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);