use sessionStorage to cache user pictures

Le sessionStorage est automatiquement vidé à la fermeture de la page, ce qui, dans le cas des photos, est un peu plus fiable et correspond un peu mieux à nos besoins.
This commit is contained in:
imperosol
2026-05-17 14:30:17 +02:00
parent 35d4465d47
commit ebb62f5132
@@ -23,9 +23,9 @@ document.addEventListener("alpine:init", () => {
async fetchPictures(): Promise<PictureSchema[]> {
// Check the cache before hitting the API.
const localStorageKey = "userPictures";
const storageKey = "userPictures";
const cacheContent: { userId: number; pictures: PictureSchema[] }[] = JSON.parse(
localStorage.getItem(localStorageKey) || "[]",
sessionStorage.getItem(storageKey) || "[]",
);
const userPictures = cacheContent.find((obj) => obj.userId === config.userId);
if (
@@ -45,12 +45,12 @@ document.addEventListener("alpine:init", () => {
cacheContent.push({ userId: config.userId, pictures: pictures });
try {
// cache only the pictures of the last 4 visited profiles
localStorage.setItem(localStorageKey, JSON.stringify(cacheContent.slice(-4)));
sessionStorage.setItem(storageKey, JSON.stringify(cacheContent.slice(-4)));
} catch {
// an exception is raised if the localstorage is entirely filled.
// To be as safe as possible, delete the cached pictures.
// A cache hit is not worth the page breaking.
localStorage.removeItem(localStorageKey);
sessionStorage.removeItem(storageKey);
}
return pictures;
},