diff --git a/ui/src/audioplayer/Player.js b/ui/src/audioplayer/Player.js index 9b2bab31e..d06ce4eb7 100644 --- a/ui/src/audioplayer/Player.js +++ b/ui/src/audioplayer/Player.js @@ -24,16 +24,25 @@ const useStyle = makeStyles((theme) => ({ textDecoration: 'none', color: theme.palette.primary.light, }, + player: { + display: (props) => (props.visible ? 'block' : 'none'), + }, })) let audioInstance = null const Player = () => { - const classes = useStyle() const translate = useTranslate() const currentTheme = useSelector((state) => state.theme) const theme = themes[currentTheme] || themes.DarkTheme const playerTheme = (theme.player && theme.player.theme) || 'dark' + const dataProvider = useDataProvider() + const dispatch = useDispatch() + const queue = useSelector((state) => state.queue) + const { authenticated } = useAuthState() + + const visible = authenticated && queue.queue.length > 0 + const classes = useStyle({ visible }) const audioTitle = useCallback( (audioInfo) => ( @@ -95,12 +104,7 @@ const Player = () => { }, } - const dataProvider = useDataProvider() - const dispatch = useDispatch() - const queue = useSelector((state) => state.queue) - const { authenticated } = useAuthState() const current = queue.current || {} - const options = useMemo(() => { return { ...defaultOptions, @@ -111,7 +115,14 @@ const Player = () => { extendsContent: , defaultVolume: queue.volume, } - }, [queue.clear, queue.queue, queue.volume, queue.playIndex, current, defaultOptions]) + }, [ + queue.clear, + queue.queue, + queue.volume, + queue.playIndex, + current, + defaultOptions, + ]) const OnAudioListsChange = useCallback( (currentPlayIndex, audioLists) => { @@ -196,33 +207,34 @@ const Player = () => { } }, []) - if (authenticated && options.audioLists.length > 0) { - return ( - - { - audioInstance = instance - }} - /> - - ) + if (!visible) { + document.title = 'Navidrome' } - document.title = 'Navidrome' - return null + + return ( + + { + audioInstance = instance + }} + /> + + ) } export default Player