Skip to content

Commit ab33dd8

Browse files
committed
fix(www): defer browser language detection until hydration
1 parent ad8036e commit ab33dd8

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

apps/www/src/components/Typewriter.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,15 @@ export default function Typewriter({
2727
startDelay = 0,
2828
className = "",
2929
}: TypewriterProps) {
30-
const [language, setLanguage] = useState<Language>(detectLanguage);
30+
// Use a deterministic SSR value, then read browser preferences after hydration.
31+
const [language, setLanguage] = useState<Language>("en");
3132
const [displayed, setDisplayed] = useState("");
3233
const [reducedMotion, setReducedMotion] = useState(false);
3334

35+
useEffect(() => {
36+
setLanguage(detectLanguage());
37+
}, []);
38+
3439
// Respect prefers-reduced-motion.
3540
useEffect(() => {
3641
const mq = window.matchMedia("(prefers-reduced-motion: reduce)");

0 commit comments

Comments
 (0)