funkwhale/front/src/worker/modules/queue.ts

31 lines
629 B
TypeScript

import type { Track } from '~/types'
import { createMessageChannel } from '#/communication'
const { onMessageReceived, post } = createMessageChannel('queue')
const queue: Track[] = []
onMessageReceived((data) => {
switch (data.type) {
case 'queue':
queue.length = 0
queue.push(...data.tracks)
break
case 'enqueue':
queue.push(...data.tracks)
post({ type: 'queue', tracks: queue })
break
case 'shuffle':
// TODO: Shuffle queue
post({ type: 'queue', tracks: [] })
break
case 'unshuffle':
post({ type: 'queue', tracks: queue })
break
}
})