mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-03-11 17:15:48 +00:00
commit
3b8278303a
3 changed files with 30 additions and 7 deletions
|
|
@ -7,6 +7,7 @@ const { default: Icon } = require('@stremio/stremio-icons/react');
|
|||
const Button = require('stremio/common/Button');
|
||||
const Image = require('stremio/common/Image');
|
||||
const useFullscreen = require('stremio/common/useFullscreen');
|
||||
const usePWA = require('stremio/common/usePWA');
|
||||
const SearchBar = require('./SearchBar');
|
||||
const NavMenu = require('./NavMenu');
|
||||
const styles = require('./styles');
|
||||
|
|
@ -17,6 +18,7 @@ const HorizontalNavBar = React.memo(({ className, route, query, title, backButto
|
|||
window.history.back();
|
||||
}, []);
|
||||
const [fullscreen, requestFullscreen, exitFullscreen] = useFullscreen();
|
||||
const isPWA = usePWA();
|
||||
const renderNavMenuLabel = React.useCallback(({ ref, className, onClick, children, }) => (
|
||||
<Button ref={ref} className={classnames(className, styles['button-container'], styles['menu-button-container'])} tabIndex={-1} onClick={onClick}>
|
||||
<Icon className={styles['icon']} name={'person-outline'} />
|
||||
|
|
@ -61,7 +63,7 @@ const HorizontalNavBar = React.memo(({ className, route, query, title, backButto
|
|||
null
|
||||
}
|
||||
{
|
||||
fullscreenButton ?
|
||||
!isPWA && fullscreenButton ?
|
||||
<Button className={styles['button-container']} title={fullscreen ? t('EXIT_FULLSCREEN') : t('ENTER_FULLSCREEN')} tabIndex={-1} onClick={fullscreen ? exitFullscreen : requestFullscreen}>
|
||||
<Icon className={styles['icon']} name={fullscreen ? 'minimize' : 'maximize'} />
|
||||
</Button>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ const { useServices } = require('stremio/services');
|
|||
const Button = require('stremio/common/Button');
|
||||
const useFullscreen = require('stremio/common/useFullscreen');
|
||||
const useProfile = require('stremio/common/useProfile');
|
||||
const usePWA = require('stremio/common/usePWA');
|
||||
const useTorrent = require('stremio/common/useTorrent');
|
||||
const { withCoreSuspender } = require('stremio/common/CoreSuspender');
|
||||
const styles = require('./styles');
|
||||
|
|
@ -19,6 +20,7 @@ const NavMenuContent = ({ onClick }) => {
|
|||
const profile = useProfile();
|
||||
const { createTorrentFromMagnet } = useTorrent();
|
||||
const [fullscreen, requestFullscreen, exitFullscreen] = useFullscreen();
|
||||
const isPWA = usePWA();
|
||||
const logoutButtonOnClick = React.useCallback(() => {
|
||||
core.transport.dispatch({
|
||||
action: 'Ctx',
|
||||
|
|
@ -59,12 +61,17 @@ const NavMenuContent = ({ onClick }) => {
|
|||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div className={styles['nav-menu-section']}>
|
||||
<Button className={styles['nav-menu-option-container']} title={fullscreen ? t('EXIT_FULLSCREEN') : t('ENTER_FULLSCREEN')} onClick={fullscreen ? exitFullscreen : requestFullscreen}>
|
||||
<Icon className={styles['icon']} name={fullscreen ? 'minimize' : 'maximize'} />
|
||||
<div className={styles['nav-menu-option-label']}>{fullscreen ? t('EXIT_FULLSCREEN') : t('ENTER_FULLSCREEN')}</div>
|
||||
</Button>
|
||||
</div>
|
||||
{
|
||||
!isPWA ?
|
||||
<div className={styles['nav-menu-section']}>
|
||||
<Button className={styles['nav-menu-option-container']} title={fullscreen ? t('EXIT_FULLSCREEN') : t('ENTER_FULLSCREEN')} onClick={fullscreen ? exitFullscreen : requestFullscreen}>
|
||||
<Icon className={styles['icon']} name={fullscreen ? 'minimize' : 'maximize'} />
|
||||
<div className={styles['nav-menu-option-label']}>{fullscreen ? t('EXIT_FULLSCREEN') : t('ENTER_FULLSCREEN')}</div>
|
||||
</Button>
|
||||
</div>
|
||||
:
|
||||
null
|
||||
}
|
||||
<div className={styles['nav-menu-section']}>
|
||||
<Button className={styles['nav-menu-option-container']} title={ t('SETTINGS') } href={'#/settings'}>
|
||||
<Icon className={styles['icon']} name={'settings'} />
|
||||
|
|
|
|||
14
src/common/usePWA.js
Normal file
14
src/common/usePWA.js
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
// Copyright (C) 2017-2023 Smart code 203358507
|
||||
|
||||
const React = require('react');
|
||||
|
||||
const usePWA = () => {
|
||||
const isPWA = React.useMemo(() => {
|
||||
const isIOSPWA = window.navigator.standalone;
|
||||
const isAndroidPWA = window.matchMedia('(display-mode: standalone)').matches;
|
||||
return isIOSPWA || isAndroidPWA;
|
||||
}, []);
|
||||
return isPWA;
|
||||
};
|
||||
|
||||
module.exports = usePWA;
|
||||
Loading…
Reference in a new issue