From c1810b18b342ca2ac98c4130cf6444cc0f15c2dd Mon Sep 17 00:00:00 2001 From: sebseb7 Date: Thu, 24 Jul 2025 10:46:10 +0200 Subject: [PATCH] refactor: implement CategoryService for category data management and update caching logic in prerender and renderer components --- prerender.cjs | 28 +++++++++++++++++++++++----- prerender/renderer.cjs | 10 +++++----- src/components/Footer.js | 2 ++ 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/prerender.cjs b/prerender.cjs index 1e61211..e63ac85 100644 --- a/prerender.cjs +++ b/prerender.cjs @@ -19,6 +19,24 @@ global.Blob = class MockBlob { } }; +class CategoryService { + constructor() { + this.get = this.get.bind(this); + } + + getSync(categoryId, language = "de") { + const cacheKey = `${categoryId}_${language}`; + return null; + } + + async get(categoryId, language = "de") { + const cacheKey = `${categoryId}_${language}`; + return null; + } +} +global.window.categoryService = new CategoryService(); + + // Import modules const fs = require("fs"); const path = require("path"); @@ -350,14 +368,14 @@ const renderProductsInParallel = async (allProductsArray, maxWorkers, totalProdu const renderApp = async (categoryData, socket) => { if (categoryData) { - global.window.productCache = { - categoryTree_209: { categoryTree: categoryData, timestamp: Date.now() }, + global.window.categoryCache = { + "209_de": categoryData, }; // @note Make cache available to components during rendering - global.productCache = global.window.productCache; + global.categoryCache = global.window.categoryCache; } else { - global.window.productCache = {}; - global.productCache = {}; + global.window.categoryCache = {}; + global.categoryCache = {}; } // Helper to call renderPage with config diff --git a/prerender/renderer.cjs b/prerender/renderer.cjs index 9eb585b..80d252b 100644 --- a/prerender/renderer.cjs +++ b/prerender/renderer.cjs @@ -173,18 +173,18 @@ const renderPage = ( // @note Create script to populate window.productCache with ONLY the static category tree let productCacheScript = ''; - if (typeof global !== "undefined" && global.window && global.window.productCache) { + if (typeof global !== "undefined" && global.window && global.window.categoryCache) { // Only include the static categoryTree_209, not any dynamic data that gets added during rendering const staticCache = {}; - if (global.window.productCache.categoryTree_209) { - staticCache.categoryTree_209 = global.window.productCache.categoryTree_209; + if (global.window.categoryCache["209_de"]) { + staticCache["209_de"] = global.window.categoryCache["209_de"]; } const staticCacheData = JSON.stringify(staticCache); productCacheScript = ` `; } diff --git a/src/components/Footer.js b/src/components/Footer.js index 6a5a9c3..e7f7793 100644 --- a/src/components/Footer.js +++ b/src/components/Footer.js @@ -300,6 +300,7 @@ class Footer extends Component { alt="Google Reviews" sx={{ height: { xs: 50, md: 60 }, + width: { xs: 105, md: 126 }, cursor: 'pointer', transition: 'all 2s ease', '&:hover': { @@ -329,6 +330,7 @@ class Footer extends Component { alt="Google Maps" sx={{ height: { xs: 40, md: 50 }, + width: { xs: 38, md: 49 }, cursor: 'pointer', transition: 'all 2s ease', filter: 'drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3))',