- Variables non utilisées préfixées avec _ - Badge variants corrigés (outline -> default/secondary) - Types ApiError corrigés (rate_limit supprimé) - Logger errors corrigés (LogContext au lieu de Error) - Types PaginatedResponse corrigés (items au lieu de data) - Types génériques complexes corrigés (stateCleanup, undoRedo) - Fichiers .example.ts exclus du typecheck - Status undefined vérifié dans client.ts Résultats: - npm run build ✅ (réussit) - npm run typecheck ✅ (0 erreurs) - npm run lint ⚠️ (1521 erreurs restantes - style/variables non utilisées) Files: 35 fichiers modifiés Hours: 6 estimated, 6 actual
31 lines
801 B
TypeScript
31 lines
801 B
TypeScript
import { useTranslation as useI18nTranslation } from 'react-i18next';
|
|
import { useUIStore } from '@/stores/ui';
|
|
import type { UseTranslationReturn } from './types';
|
|
|
|
/**
|
|
* Hook pour gérer les traductions
|
|
* FE-TYPE-012: Fully typed hook return
|
|
*/
|
|
export function useTranslation(): UseTranslationReturn {
|
|
const { i18n, t } = useI18nTranslation();
|
|
const { language, setLanguage } = useUIStore();
|
|
|
|
const changeLanguage = (newLanguage: 'en' | 'fr') => {
|
|
void i18n.changeLanguage(newLanguage);
|
|
setLanguage(newLanguage);
|
|
};
|
|
|
|
return {
|
|
t,
|
|
i18n: {
|
|
...i18n,
|
|
changeLanguage: async (lng: string) => {
|
|
await i18n.changeLanguage(lng);
|
|
},
|
|
isInitialized: i18n.isInitialized,
|
|
},
|
|
language,
|
|
changeLanguage,
|
|
isReady: i18n.isInitialized,
|
|
};
|
|
}
|