kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
				
				
				
			fix: abort preload if next track is unavailable
Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2346>environments/review-docs-fix-d-jlladr/deployments/17321
							rodzic
							
								
									4a656777e3
								
							
						
					
					
						commit
						186c8000f8
					
				|  | @ -122,7 +122,7 @@ export const useTracks = createGlobalState(() => { | |||
|   }, 3000, { immediate: false }) | ||||
| 
 | ||||
|   // Preload next track
 | ||||
|   const { start: startPreloadTimeout } = useTimeoutFn(async (index) => { | ||||
|   const { start: startPreloadTimeout, stop: abortPreload } = useTimeoutFn(async (index) => { | ||||
|     const { queue } = useQueue() | ||||
|     const sound = await createSound(queue.value[index as number]) | ||||
|     await sound.preload() | ||||
|  | @ -167,15 +167,15 @@ export const useTracks = createGlobalState(() => { | |||
| 
 | ||||
|     let lastTrack: QueueTrack | ||||
|     watchEffect(async () => { | ||||
|       abortPreload() | ||||
| 
 | ||||
|       if (!hasNext.value) return | ||||
| 
 | ||||
|       const nextTrack = queue.value[currentIndex.value + 1] | ||||
|       if (lastTrack === nextTrack) return | ||||
|       if (nextTrack && lastTrack === nextTrack) return | ||||
|       lastTrack = nextTrack | ||||
| 
 | ||||
|       // NOTE: Preload next track
 | ||||
|       //       Calling this function clears previous timeout and starts a new one.
 | ||||
|       //       Since this watchEffect fires whenever currentIndex / nextTrack changes, it will automatically cleanup previous preload.
 | ||||
|       // @ts-expect-error vueuse is wrongly typed: https://github.com/vueuse/vueuse/issues/2691
 | ||||
|       startPreloadTimeout(currentIndex.value + 1) | ||||
|     }) | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Kasper Seweryn
						Kasper Seweryn