
0 && banners[0].imageUrl ? banners[0].imageUrl : "/assets/images/hero-section-image.png")}
+ src={(mounted && isInitialized ? getText('hero_image_url', '') : '') || (banners.length > 0 && banners[0].imageUrl ? banners[0].imageUrl : "/assets/images/hero-section-image.png")}
alt={banners.length > 0 ? banners[0].title : "Canina Pharma Germany"}
className="w-full h-full object-cover"
loading="eager"
referrerPolicy="no-referrer"
/>
-
{getText('hero_image_badge', "سرآمد علمی در پزشکی پتها")}
-
{getText('hero_image_title', "مکملهای تایید شده دامپزشکی")}
+
+ {mounted && isInitialized ? getText('hero_image_badge', "سرآمد علمی در پزشکی پتها") : "سرآمد علمی در پزشکی پتها"}
+
+
+ {mounted && isInitialized ? getText('hero_image_title', "مکملهای تایید شده دامپزشکی با گواهی IFS") : "مکملهای تایید شده دامپزشکی با گواهی IFS"}
+
{/* Quality Badge inside the image container to prevent text collision */}
@@ -132,7 +152,9 @@ export default function Hero({ banners = [] }: { banners?: Banner[] }) {
>
DE
- {getText('hero_quality_standard', "استاندارد کیفی آلمان")}
+
+ {mounted && isInitialized ? getText('hero_quality_standard', "استاندارد کیفی آلمان (IFS & HACCP)") : "استاندارد کیفی آلمان (IFS & HACCP)"}
+
@@ -161,7 +183,9 @@ export default function Hero({ banners = [] }: { banners?: Banner[] }) {
۱۹۸۴
-
{getText('hero_stat_founded', "سال تاسیس برند")}
+
+ {mounted && isInitialized ? getText('hero_stat_founded', "سال تاسیس برند") : "سال تاسیس برند"}
+
@@ -174,7 +198,9 @@ export default function Hero({ banners = [] }: { banners?: Banner[] }) {
+ {mounted && isInitialized ? getText('hero_stat_agencies', "نمایندگی فعال") : "نمایندگی فعال"}
+
@@ -185,7 +211,9 @@ export default function Hero({ banners = [] }: { banners?: Banner[] }) {
۱۰۰٪
-
{getText('hero_stat_german_formula', "فرمول آلمانی")}
+
+ {mounted && isInitialized ? getText('hero_stat_german_formula', "فرمول آلمانی") : "فرمول آلمانی"}
+
diff --git a/frontend/application/components/__tests__/Hero.test.tsx b/frontend/application/components/__tests__/Hero.test.tsx
index 09658dd..18d1163 100644
--- a/frontend/application/components/__tests__/Hero.test.tsx
+++ b/frontend/application/components/__tests__/Hero.test.tsx
@@ -14,25 +14,25 @@ describe('Hero', () => {
vi.clearAllMocks();
});
- it('renders title and description from settingsStore', () => {
+ it('renders title and description from settingsStore', async () => {
const mockGetText = vi.fn().mockImplementation((key, fallback) => {
if (key === 'hero_title') return 'Test Title Line 1\nTest Title Line 2';
if (key === 'hero_desc') return 'Test Description Text';
return fallback;
});
- vi.mocked(useSettingsStore).mockImplementation((selector: (state: { getText: (key: string, fallback: string) => string }) => unknown) => selector({ getText: mockGetText }) as ReturnType