diff --git a/src/components/SharedCarousel.js b/src/components/SharedCarousel.js index ab23728..ad7b616 100644 --- a/src/components/SharedCarousel.js +++ b/src/components/SharedCarousel.js @@ -48,8 +48,9 @@ const initializeCategories = (language = 'en') => { } } - // Fallback to old cache format if language-specific cache doesn't exist - if (productCache && productCache["categoryTree_209"]) { + // Only fallback to old cache format if we're looking for German (default language) + // This prevents showing German categories when user wants English categories + if (language === 'de' && productCache && productCache["categoryTree_209"]) { const cached = productCache["categoryTree_209"]; if (cached.categoryTree) { return processCategoryTree(cached.categoryTree); @@ -64,13 +65,20 @@ const SharedCarousel = () => { const context = useContext(SocketContext); const { t, i18n } = useTranslation(); const [rootCategories, setRootCategories] = useState([]); - const [currentLanguage, setCurrentLanguage] = useState(i18n.language); + const [currentLanguage, setCurrentLanguage] = useState(i18n.language || 'de'); useEffect(() => { const initialCategories = initializeCategories(currentLanguage); setRootCategories(initialCategories); }, [currentLanguage]); + // Also listen for i18n ready state + useEffect(() => { + if (i18n.isInitialized && i18n.language !== currentLanguage) { + setCurrentLanguage(i18n.language); + } + }, [i18n.isInitialized, i18n.language, currentLanguage]); + // Listen for language changes useEffect(() => { const handleLanguageChange = (lng) => { @@ -108,7 +116,8 @@ const SharedCarousel = () => { } catch (err) { console.error(err); } - setRootCategories(categoryTreeToUse.children || []); + const newCategories = categoryTreeToUse.children || []; + setRootCategories(newCategories); } } else if (response && response.categoryTree) { // Fallback for old response format @@ -122,7 +131,8 @@ const SharedCarousel = () => { } catch (err) { console.error(err); } - setRootCategories(response.categoryTree.children || []); + const newCategories = response.categoryTree.children || []; + setRootCategories(newCategories); } }); }