refactor: integrate CategoryService into SharedCarousel for improved category data management and enhance component structure

This commit is contained in:
sebseb7
2025-07-24 06:23:37 +02:00
parent 1aabd3ef1e
commit 2f753a81a4
3 changed files with 389 additions and 234 deletions

View File

@@ -0,0 +1,40 @@
class CategoryService {
constructor() {
this.get = this.get.bind(this);
}
getSync(categoryId, language = "de") {
const cacheKey = `${categoryId}_${language}`;
if (window.categoryCache && window.categoryCache[cacheKey]) {
return window.categoryCache[cacheKey];
}
return null;
}
get(categoryId, language = "de") {
const cacheKey = `${categoryId}_${language}`;
if (window.categoryCache && window.categoryCache[cacheKey]) {
return Promise.resolve(window.categoryCache[cacheKey]);
}
return new Promise((resolve) => {
window.socketManager.emit("categoryList", {categoryId: categoryId, language: language}, (response) => {
console.log("CategoryService", cacheKey);
if (response.categoryTree) {
if (!window.categoryCache) {
window.categoryCache = {};
}
window.categoryCache[cacheKey] = response.categoryTree;
resolve(response.categoryTree);
} else {
resolve(null);
}
});
});
}
}
const categoryService = new CategoryService();
window.categoryService = categoryService;
export default categoryService;