@umituz/react-native-localization 1.6.3 → 1.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/react-native-localization",
3
- "version": "1.6.3",
3
+ "version": "1.6.5",
4
4
  "description": "Universal localization system for React Native apps with i18n support",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -132,19 +132,19 @@ export const useLocalization = () => {
132
132
  const currentLanguageObject = getLanguageByCode(currentLanguage);
133
133
 
134
134
  // Always call useTranslation hook (React hooks rules - must be unconditional)
135
- // If i18n is not ready, useTranslation will throw, but we handle it gracefully
136
- const translationResult = useTranslation();
135
+ // Pass i18n instance explicitly to ensure react-i18next finds it
136
+ // This fixes the "NO_I18NEXT_INSTANCE" error
137
+ // Even if i18n is not fully initialized, useTranslation will handle it gracefully
138
+ // with the explicit i18n instance passed
139
+ const translationResult = useTranslation(undefined, { i18n });
137
140
 
138
- // Check if i18n is initialized and react-i18next is ready
139
- // If not, use direct i18n.t as fallback
140
- const isI18nReady = i18n.isInitialized && typeof i18n.t === 'function';
141
-
142
- // Use translation function from react-i18next if available, otherwise use direct i18n.t
143
- // This handles the case where react-i18next is not yet initialized
144
- const t: (key: string, options?: any) => string = (translationResult?.t && typeof translationResult.t === 'function')
141
+ // Use translation function from react-i18next if available and valid
142
+ // Otherwise fallback to direct i18n.t
143
+ const t: (key: string, options?: any) => string = (translationResult?.t && typeof translationResult.t === 'function' && i18n.isInitialized)
145
144
  ? translationResult.t
146
145
  : ((key: string, options?: any) => {
147
- if (isI18nReady) {
146
+ // Fallback to direct i18n.t if react-i18next is not ready
147
+ if (i18n.isInitialized && typeof i18n.t === 'function') {
148
148
  return i18n.t(key, options);
149
149
  }
150
150
  // Final fallback: return key if i18n is not ready