sawyerf 8948aa8eda
Up: Queue management (#56)
* Manage my own queue in android

* Fix: reload app

* Add: random button (android)

* Up: Save song with AsyncStorage

* Fix: next button doesn't show on some android devices
2025-08-02 03:29:10 +02:00

23 lines
751 B
JavaScript

export const shuffle = (array) => {
return array.map(value => ({ value, sort: Math.random() }))
.sort((a, b) => a.sort - b.sort)
.map(({ value }) => value)
}
const currentRandomIndex = () => {
return window.song.randomIndex.findIndex((item) => item === window.song.index)
}
export const nextRandomIndex = () => {
let index = currentRandomIndex()
if (index === -1) index = 0
if (index + 1 >= window.song.randomIndex.length) return window.song.randomIndex[0]
else return window.song.randomIndex[index + 1]
}
export const prevRandomIndex = () => {
let index = currentRandomIndex()
if (index - 1 < 0) return window.song.randomIndex[window.song.randomIndex.length - 1]
else return window.song.randomIndex[index - 1]
}