Skip to content

Commit f226cd5

Browse files
committed
test
1 parent fc7f1d5 commit f226cd5

File tree

1 file changed

+39
-7
lines changed

1 file changed

+39
-7
lines changed

src/components/Footer/Subscribe/Subscribe.tsx

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,42 @@ export default function Subscribe(props) {
1919
const [email, setEmail] = useState("")
2020
const [customMessage, setCustomMessage] = useState("")
2121
const [emailValid, setEmailValid] = useState(false)
22+
const [currentLang, setCurrentLang] = useState(props.lang || i18next.language || "en")
2223

23-
i18next.changeLanguage(props.lang)
24+
useEffect(() => {
25+
const initLanguage = async () => {
26+
if (props.lang) {
27+
// Wait for i18next to be initialized if needed
28+
if (!i18next.isInitialized) {
29+
await new Promise((resolve) => {
30+
if (i18next.isInitialized) {
31+
resolve(undefined)
32+
} else {
33+
const handler = () => {
34+
i18next.off("initialized", handler)
35+
resolve(undefined)
36+
}
37+
i18next.on("initialized", handler)
38+
}
39+
})
40+
}
41+
// Change language and wait for it to complete
42+
await changeLanguage(props.lang)
43+
setCurrentLang(props.lang)
44+
}
45+
}
46+
initLanguage()
47+
48+
// Listen for language changes to trigger re-render
49+
const handleLanguageChanged = (lng: string) => {
50+
setCurrentLang(lng)
51+
}
52+
i18next.on("languageChanged", handleLanguageChanged)
53+
54+
return () => {
55+
i18next.off("languageChanged", handleLanguageChanged)
56+
}
57+
}, [props.lang])
2458

2559
useEffect(() => {
2660
setCustomMessage("")
@@ -43,17 +77,15 @@ export default function Subscribe(props) {
4377
}
4478

4579
return (
46-
<div className={clsx(styles.container, "dark:bg-dark-highlight")}>
80+
<div className={clsx(styles.container, "dark:bg-dark-highlight")} data-lang={currentLang}>
4781
<div className={styles.subscribeBox}>
4882
<span className="text-white dark:text-black bg-black dark:bg-white rounded-[50%]">
4983
<SubscribeSvg></SubscribeSvg>
5084
</span>
5185

5286
<div className={styles.copyBox}>
53-
<div className={styles.subscribeTitle}>{ t("landing.NewsletterCTA.title") }</div>
54-
<div className={styles.subscribeText}>
55-
{ t("landing.NewsletterCTA.text") }
56-
</div>
87+
<div className={styles.subscribeTitle}>{t("landing.NewsletterCTA.title")}</div>
88+
<div className={styles.subscribeText}>{t("landing.NewsletterCTA.text")}</div>
5789
</div>
5890
<MailchimpSubscribe
5991
url={url}
@@ -65,7 +97,7 @@ export default function Subscribe(props) {
6597
onChange={handleChangeEmail}
6698
onClick={() => handleSubmit(subscribe)}
6799
onEnter={() => handleSubmit(subscribe)}
68-
placeholder= { t("landing.NewsletterCTA.placeholder") }
100+
placeholder={t("landing.NewsletterCTA.placeholder")}
69101
end={status === "success"}
70102
/>
71103
{customMessage && <div className={styles.errorMessage}>{customMessage}</div>}

0 commit comments

Comments
 (0)