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) => {
|
||||
// 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
|
||||
currentTrack.value = track
|
||||
currentTrackIndex.value = isShuffled.value
|
||||
@@ -419,6 +426,24 @@ watch(isDark, (newValue) => {
|
||||
}
|
||||
}, { 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) => {
|
||||
if (newAudio) {
|
||||
newAudio.addEventListener('play', () => { isPlaying.value = true })
|
||||
|
||||
Reference in New Issue
Block a user