fix: permitir reintentar canciones que fallaron previamente
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 25s
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 25s
El Set failedTracks marcaba canciones como fallidas permanentemente durante toda la sesión, sin permitir reintentarlas. Esto causaba que canciones que fallaban por razones temporales (ej: sesión expirada) quedaran marcadas como error incluso después de resolver el problema. Cambios implementados: - Limpiar estado de error al inicio de playTrack() antes de reintentar - Agregar watcher que limpia todos los errores cuando se restablece auth - Agregar watcher que limpia errores cuando se cargan canciones exitosamente Con esto, las canciones con error pueden reintentarse haciendo click nuevamente, y todos los errores se limpian automáticamente cuando la autenticación se restablece o se cargan canciones exitosamente.
This commit is contained in:
@@ -167,6 +167,13 @@ const generateShuffledIndices = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const playTrack = async (track, index) => {
|
const playTrack = async (track, index) => {
|
||||||
|
// Limpiar el estado de error de esta canción si existe
|
||||||
|
// (permite reintentar canciones que fallaron previamente)
|
||||||
|
if (failedTracks.value.has(track.name)) {
|
||||||
|
console.log('[PlayTrack] Clearing previous error state for:', track.name)
|
||||||
|
failedTracks.value.delete(track.name)
|
||||||
|
}
|
||||||
|
|
||||||
loadingTrack.value = track.name
|
loadingTrack.value = track.name
|
||||||
currentTrack.value = track
|
currentTrack.value = track
|
||||||
currentTrackIndex.value = isShuffled.value
|
currentTrackIndex.value = isShuffled.value
|
||||||
@@ -419,6 +426,24 @@ watch(isDark, (newValue) => {
|
|||||||
}
|
}
|
||||||
}, { immediate: true })
|
}, { immediate: true })
|
||||||
|
|
||||||
|
// Limpiar errores cuando se restablece la autenticación
|
||||||
|
watch(() => musicStore.error, (newError, oldError) => {
|
||||||
|
// Si el error se limpia (de error a null), limpiar todos los errores de canciones
|
||||||
|
if (oldError && !newError && failedTracks.value.size > 0) {
|
||||||
|
console.log('[PlayTrack] Auth restored, clearing all failed tracks')
|
||||||
|
failedTracks.value.clear()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Limpiar errores cuando se cargan canciones exitosamente
|
||||||
|
watch(() => musicStore.tracks.length, (newLength, oldLength) => {
|
||||||
|
// Si se cargan canciones exitosamente, limpiar errores
|
||||||
|
if (newLength > 0 && newLength !== oldLength && failedTracks.value.size > 0) {
|
||||||
|
console.log('[PlayTrack] Tracks loaded successfully, clearing failed tracks')
|
||||||
|
failedTracks.value.clear()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
watch(() => audioPlayer.value, (newAudio) => {
|
watch(() => audioPlayer.value, (newAudio) => {
|
||||||
if (newAudio) {
|
if (newAudio) {
|
||||||
newAudio.addEventListener('play', () => { isPlaying.value = true })
|
newAudio.addEventListener('play', () => { isPlaying.value = true })
|
||||||
|
|||||||
Reference in New Issue
Block a user