From c0b11a81e91db1c4eb130db1a722e20211f4ba5e Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Thu, 14 Nov 2024 18:25:27 +0100 Subject: [PATCH] Fix: fix #2254; an image carousel with a different key would not show up due to caching --- src/Logic/ImageProviders/AllImageProviders.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Logic/ImageProviders/AllImageProviders.ts b/src/Logic/ImageProviders/AllImageProviders.ts index 987b1a191e..7d11240160 100644 --- a/src/Logic/ImageProviders/AllImageProviders.ts +++ b/src/Logic/ImageProviders/AllImageProviders.ts @@ -68,7 +68,7 @@ export default class AllImageProviders { private static readonly _cachedImageStores: Record> = {} /** - * Tries to extract all image data for this image. Cachedon tags?.data?.id + * Tries to extract all image data for this image. Cached on tags?.data?.id */ public static LoadImagesFor( tags: Store>, @@ -78,8 +78,9 @@ export default class AllImageProviders { return undefined } const id = tags?.data?.id - if (this._cachedImageStores[id]) { - return this._cachedImageStores[id] + const cachekey = id + (tagKey?.join(";") ?? "") + if (this._cachedImageStores[cachekey]) { + return this._cachedImageStores[cachekey] } const source = new UIEventSource([]) @@ -90,6 +91,7 @@ export default class AllImageProviders { However, we override them if a custom image tag is set, e.g. 'image:menu' */ const prefixes = tagKey ?? imageProvider.defaultKeyPrefixes + console.log("Prefixes are", tagKey, prefixes) const singleSource = tags.bindD((tags) => imageProvider.getRelevantUrls(tags, prefixes)) allSources.push(singleSource) singleSource.addCallbackAndRunD((_) => { @@ -98,7 +100,7 @@ export default class AllImageProviders { source.set(dedup) }) } - this._cachedImageStores[id] = source + this._cachedImageStores[cachekey] = source return source }