From 2bb3e152f8329b07e0abd2c879da6d748ae62366 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 16 Apr 2024 19:54:00 +0530 Subject: [PATCH] Precache --- web/apps/cast/src/pages/slideshow.tsx | 28 ++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/web/apps/cast/src/pages/slideshow.tsx b/web/apps/cast/src/pages/slideshow.tsx index 60aded0336..8d8b61c703 100644 --- a/web/apps/cast/src/pages/slideshow.tsx +++ b/web/apps/cast/src/pages/slideshow.tsx @@ -162,12 +162,34 @@ export default function Slideshow() { } }; - useEffect(() => { - if (currentFile) { - getRenderableFileURL(); + const precacheNextRenderableFileURL = async () => { + if (!nextFile) return; + + const cacheValue = renderableFileURLCache.get(nextFile.id); + if (cacheValue) return; + + try { + const blob = await getPreviewableImage( + nextFile as EnteFile, + castToken, + ); + + const url = URL.createObjectURL(blob); + + renderableFileURLCache.set(nextFile?.id, url); + } catch (e) { + return; } + }; + + useEffect(() => { + getRenderableFileURL(); }, [currentFile]); + useEffect(() => { + precacheNextRenderableFileURL(); + }, [nextFile]); + return ( <>