Fix: Ultimate SSR safety for CyberTheme and i18n

This commit is contained in:
marciobever 2026-05-03 16:08:51 +00:00
parent 6e3aca8f15
commit 0c4b299b0b

View file

@ -2,7 +2,7 @@ import { useState, useEffect } from 'react';
export type Language = 'pt' | 'en' | 'es';
const translations = {
const translations: Record<Language, any> = {
pt: {
nav: { home: 'Início', articles: 'Artigos', contact: 'Contato', language: 'Idioma' },
footer: { rights: 'Todos os direitos reservados', builtWith: 'Construído com' }
@ -23,7 +23,7 @@ export function useLanguage() {
useEffect(() => {
if (typeof window !== 'undefined') {
const saved = localStorage.getItem('lang');
if (saved && (translations as any)[saved]) {
if (saved && translations[saved as Language]) {
setLangState(saved as Language);
}
}
@ -32,7 +32,7 @@ export function useLanguage() {
useEffect(() => {
const handleLangChange = (e: Event) => {
const detail = (e as CustomEvent).detail;
if (detail && (translations as any)[detail]) {
if (detail && translations[detail as Language]) {
setLangState(detail);
}
};
@ -52,6 +52,6 @@ export function useLanguage() {
lang,
setLanguage: setLang,
setLang,
t: (translations as any)[lang] || translations.pt
t: translations[lang] || translations.pt
};
}