From 1a08fea557bc6d4e2e8b196af85de75e86741e31 Mon Sep 17 00:00:00 2001 From: wil Date: Tue, 4 Jun 2024 11:18:42 -0400 Subject: [PATCH] guard for over-resetting list of userMovies, hence, fix the problem of looping between fetch and reset --- app/signals/backgroundLoadedMedia.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/signals/backgroundLoadedMedia.ts b/app/signals/backgroundLoadedMedia.ts index d24acf8a7b..e8f3f255a1 100644 --- a/app/signals/backgroundLoadedMedia.ts +++ b/app/signals/backgroundLoadedMedia.ts @@ -7,7 +7,15 @@ import { AudioMediaItem } from "~/pages/PageEnigma/models"; export const userMovies = signal(undefined); export const setUserMovies = (newSet: MediaInfo[]) => { - userMovies.value = newSet; + const userMoviesTokens = (userMovies.value || []).map((movie) => movie.token); + const newSetTokens = newSet.map((newSetMovie) => newSetMovie.token); + const isSameTokens = + userMoviesTokens.length === newSetTokens.length && + newSetTokens.every((token) => userMoviesTokens.includes(token)); + if (!isSameTokens) { + userMovies.value = newSet; + } + //else do nothing cos it's the same list; }; //Signal for background loading User's Audio Items.