Disable mini-player (bubble) dragging. Should fix #1217

This commit is contained in:
Deluan
2021-09-13 11:17:06 -04:00
parent b55f3a6946
commit abf6318a8b
3 changed files with 44 additions and 12 deletions
+6 -3
View File
@@ -23,9 +23,11 @@ import subsonic from '../subsonic'
import locale from './locale' import locale from './locale'
import { keyMap } from '../hotkeys' import { keyMap } from '../hotkeys'
import keyHandlers from './keyHandlers' import keyHandlers from './keyHandlers'
import { useWindowSize } from '../common'
const Player = () => { const Player = () => {
const theme = useCurrentTheme() const theme = useCurrentTheme()
const size = useWindowSize()
const translate = useTranslate() const translate = useTranslate()
const playerTheme = theme.player?.theme || 'dark' const playerTheme = theme.player?.theme || 'dark'
const dataProvider = useDataProvider() const dataProvider = useDataProvider()
@@ -63,16 +65,17 @@ const Player = () => {
restartCurrentOnPrev: true, restartCurrentOnPrev: true,
quietUpdate: true, quietUpdate: true,
defaultPosition: { defaultPosition: {
top: 300, top: size.height - 90,
left: 120, left: size.width - 90,
}, },
drag: false,
volumeFade: { fadeIn: 200, fadeOut: 200 }, volumeFade: { fadeIn: 200, fadeOut: 200 },
renderAudioTitle: (audioInfo, isMobile) => ( renderAudioTitle: (audioInfo, isMobile) => (
<AudioTitle audioInfo={audioInfo} isMobile={isMobile} /> <AudioTitle audioInfo={audioInfo} isMobile={isMobile} />
), ),
locale: locale(translate), locale: locale(translate),
}), }),
[isDesktop, playerTheme, translate] [isDesktop, playerTheme, translate, size]
) )
const options = useMemo(() => { const options = useMemo(() => {
+10 -9
View File
@@ -1,5 +1,6 @@
export * from './AddToPlaylistButton' export * from './AddToPlaylistButton'
export * from './ArtistLinkField' export * from './ArtistLinkField'
export * from './ArtistSimpleList'
export * from './BatchPlayButton' export * from './BatchPlayButton'
export * from './BitrateField' export * from './BitrateField'
export * from './ContextMenus' export * from './ContextMenus'
@@ -7,11 +8,14 @@ export * from './DateField'
export * from './DocLink' export * from './DocLink'
export * from './DurationField' export * from './DurationField'
export * from './List' export * from './List'
export * from './LoveButton'
export * from './MultiLineTextField' export * from './MultiLineTextField'
export * from './Pagination' export * from './Pagination'
export * from './PlayButton' export * from './PlayButton'
export * from './QualityInfo'
export * from './QuickFilter' export * from './QuickFilter'
export * from './RangeField' export * from './RangeField'
export * from './RatingField'
export * from './ShuffleAllButton' export * from './ShuffleAllButton'
export * from './SimpleList' export * from './SimpleList'
export * from './SizeField' export * from './SizeField'
@@ -19,19 +23,16 @@ export * from './SongContextMenu'
export * from './SongDatagrid' export * from './SongDatagrid'
export * from './SongDetails' export * from './SongDetails'
export * from './SongTitleField' export * from './SongTitleField'
export * from './LoveButton'
export * from './Title' export * from './Title'
export * from './ToggleFieldsMenu'
export * from './SongBulkActions' export * from './SongBulkActions'
export * from './SongSimpleList'
export * from './useAlbumsPerPage' export * from './useAlbumsPerPage'
export * from './useInterval' export * from './useInterval'
export * from './useResourceRefresh' export * from './useResourceRefresh'
export * from './useToggleLove'
export * from './useTraceUpdate'
export * from './Writable'
export * from './SongSimpleList'
export * from './ArtistSimpleList'
export * from './RatingField'
export * from './useRating' export * from './useRating'
export * from './useSelectedFields' export * from './useSelectedFields'
export * from './ToggleFieldsMenu' export * from './useToggleLove'
export * from './QualityInfo' export * from './useTraceUpdate'
export * from './useWindowSize'
export * from './Writable'
+28
View File
@@ -0,0 +1,28 @@
import { useState, useEffect } from 'react'
// Hook from https://usehooks.com/useWindowSize/
export function useWindowSize() {
// Initialize state with undefined width/height so server and client renders match
// Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/
const [windowSize, setWindowSize] = useState({
width: undefined,
height: undefined,
})
useEffect(() => {
// Handler to call on window resize
function handleResize() {
// Set window width/height to state
setWindowSize({
width: window.innerWidth,
height: window.innerHeight,
})
}
// Add event listener
window.addEventListener('resize', handleResize)
// Call handler right away so state gets updated with initial window size
handleResize()
// Remove event listener on cleanup
return () => window.removeEventListener('resize', handleResize)
}, []) // Empty array ensures that effect is only run on mount
return windowSize
}