mirror of
https://github.com/sawyerf/Castafiore.git
synced 2026-03-24 12:57:47 +08:00
* 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
23 lines
751 B
JavaScript
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]
|
|
}
|