refactor: rename player to audioplayer

This commit is contained in:
Deluan
2020-03-11 19:46:46 -04:00
committed by Deluan Quintão
parent da36941252
commit 353c48d8d8
8 changed files with 5 additions and 5 deletions
+85
View File
@@ -0,0 +1,85 @@
import 'react-jinke-music-player/assets/index.css'
import { subsonicUrl } from '../subsonic'
const PLAYER_ADD_TRACK = 'PLAYER_ADD_TRACK'
const PLAYER_SET_TRACK = 'PLAYER_SET_TRACK'
const PLAYER_SYNC_QUEUE = 'PLAYER_SYNC_QUEUE'
const PLAYER_SCROBBLE = 'PLAYER_SCROBBLE'
const PLAYER_PLAY_ALBUM = 'PLAYER_PLAY_ALBUM'
const mapToAudioLists = (item) => ({
id: item.id,
name: item.title,
singer: item.artist,
cover: subsonicUrl('getCoverArt', item.id, { size: 300 }),
musicSrc: subsonicUrl('stream', item.id, { ts: true }),
scrobble: (submit) => subsonicUrl('scrobble', item.id, { submission: submit })
})
const addTrack = (data) => ({
type: PLAYER_ADD_TRACK,
data
})
const setTrack = (data) => ({
type: PLAYER_SET_TRACK,
data
})
const playAlbum = (id, data) => ({
type: PLAYER_PLAY_ALBUM,
data,
id
})
const syncQueue = (data) => ({
type: PLAYER_SYNC_QUEUE,
data
})
const scrobble = (id) => ({
type: PLAYER_SCROBBLE,
data: id
})
const playQueueReducer = (
previousState = { queue: [], clear: true },
payload
) => {
let queue
const { type, data } = payload
switch (type) {
case PLAYER_ADD_TRACK:
queue = previousState.queue
queue.push(mapToAudioLists(data))
return { queue, clear: false }
case PLAYER_SET_TRACK:
return { queue: [mapToAudioLists(data)], clear: true }
case PLAYER_SYNC_QUEUE:
return { queue: data, clear: false }
case PLAYER_SCROBBLE:
const newQueue = previousState.queue.map((item) => {
return {
...item,
scrobbled: item.scrobbled || item.id === data
}
})
return { queue: newQueue, clear: false }
case PLAYER_PLAY_ALBUM:
queue = []
let match = false
Object.keys(data).forEach((id) => {
if (id === payload.id) {
match = true
}
if (match) {
queue.push(mapToAudioLists(data[id]))
}
})
return { queue, clear: true }
default:
return previousState
}
}
export { addTrack, setTrack, playAlbum, syncQueue, scrobble, playQueueReducer }