fix duplicate songs showing as playing

made playing icon in line with text (doesn't work well with scaling)
This commit is contained in:
austinried
2021-08-10 17:33:07 +09:00
parent 2c0fdfed4d
commit ea45678733
6 changed files with 42 additions and 15 deletions

View File

@@ -5,7 +5,7 @@ import GradientScrollView from '@app/components/GradientScrollView'
import Header from '@app/components/Header'
import ListItem from '@app/components/ListItem'
import { useArtistInfo } from '@app/hooks/music'
import { useSetQueue } from '@app/hooks/trackplayer'
import { useIsPlaying, useSetQueue } from '@app/hooks/trackplayer'
import { Album, Song } from '@app/models/music'
import colors from '@app/styles/colors'
import font from '@app/styles/font'
@@ -45,6 +45,7 @@ const TopSongs = React.memo<{
artistId: string
}>(({ songs, name, artistId }) => {
const setQueue = useSetQueue()
const isPlaying = useIsPlaying()
return (
<>
@@ -53,6 +54,7 @@ const TopSongs = React.memo<{
<ListItem
key={i}
item={s}
isPlaying={() => isPlaying(artistId, i)}
showArt={true}
subtitle={s.album}
onPress={() => setQueue(songs, name, 'artist', artistId, i)}

View File

@@ -1,7 +1,7 @@
import GradientScrollView from '@app/components/GradientScrollView'
import ListItem from '@app/components/ListItem'
import NowPlayingBar from '@app/components/NowPlayingBar'
import { mapTrackExtToSong, useSkipTo } from '@app/hooks/trackplayer'
import { mapTrackExtToSong, useIsPlaying, useSkipTo } from '@app/hooks/trackplayer'
import { useStore } from '@app/state/store'
import { selectTrackPlayer } from '@app/state/trackplayer'
import React from 'react'
@@ -10,6 +10,7 @@ import { StyleSheet, View } from 'react-native'
const NowPlayingQueue = React.memo<{}>(() => {
const queue = useStore(selectTrackPlayer.queue)
const skipTo = useSkipTo()
const isPlaying = useIsPlaying()
return (
<View style={styles.outerContainer}>
@@ -19,6 +20,7 @@ const NowPlayingQueue = React.memo<{}>(() => {
<ListItem
key={i}
item={song}
isPlaying={() => isPlaying(undefined, i)}
onPress={() => skipTo(i)}
showArt={true}
subtitle={`${song.artist}${song.album}`}

View File

@@ -3,7 +3,7 @@ import Header from '@app/components/Header'
import ListItem from '@app/components/ListItem'
import NothingHere from '@app/components/NothingHere'
import { useActiveListRefresh2 } from '@app/hooks/server'
import { useSetQueue } from '@app/hooks/trackplayer'
import { useIsPlaying, useSetQueue } from '@app/hooks/trackplayer'
import { ListableItem, SearchResults, Song } from '@app/models/music'
import { selectMusic } from '@app/state/music'
import { useStore } from '@app/state/store'
@@ -15,10 +15,12 @@ import { ActivityIndicator, StatusBar, StyleSheet, TextInput, View } from 'react
const SongItem = React.memo<{ item: Song }>(({ item }) => {
const setQueue = useSetQueue()
const isPlaying = useIsPlaying()
return (
<ListItem
item={item}
isPlaying={() => isPlaying(item.id, 0)}
showArt={true}
showStar={false}
onPress={() => setQueue([item], item.title, 'song', item.id, 0)}

View File

@@ -5,7 +5,7 @@ import ListItem from '@app/components/ListItem'
import ListPlayerControls from '@app/components/ListPlayerControls'
import NothingHere from '@app/components/NothingHere'
import { useAlbumWithSongs, useCoverArtUri, usePlaylistWithSongs } from '@app/hooks/music'
import { useSetQueue } from '@app/hooks/trackplayer'
import { useIsPlaying, useSetQueue } from '@app/hooks/trackplayer'
import { AlbumWithSongs, PlaylistWithSongs, Song } from '@app/models/music'
import colors from '@app/styles/colors'
import font from '@app/styles/font'
@@ -28,6 +28,7 @@ const Songs = React.memo<{
itemId: string
}>(({ songs, name, type, itemId }) => {
const setQueue = useSetQueue()
const isPlaying = useIsPlaying()
const _songs = [...songs]
let typeName = ''
@@ -56,6 +57,7 @@ const Songs = React.memo<{
<ListItem
key={i}
item={s}
isPlaying={() => isPlaying(itemId, i)}
subtitle={s.artist}
onPress={() => setQueue(songs, name, type, itemId, i)}
showArt={type === 'playlist'}