// 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 { 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 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(); } }, [toggleMenu]); 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, className: classnames(className, { 'active': menuOpen }), onClick: popupLabelOnClick, children, }) ), [menuOpen, popupLabelOnClick, props.renderLabel]); const renderMenu = React.useCallback(() => (
{profile.auth === null ? 'Anonymous user' : profile.auth.user.email}
), [profile, fullscreen]); React.useEffect(() => { if (!routeFocused) { closeMenu(); } }, [routeFocused]); return ( ); }; NavMenu.propTypes = { renderLabel: PropTypes.func }; module.exports = NavMenu;