i18n FR + EN :
- home.recentScans : 'Mes plantes récentes' / 'My recent plants'
- map.preview.{title,tapHint}
- myPlants.detail.rename{Title,Subtitle,Placeholder,Save}
- myPlants.toasts.renamed
App.tsx : retire NavigationBar.setBackgroundColorAsync + setPositionAsync
(navigation bar déjà bien gérée par expo-navigation-bar par défaut).
BottomTabNavigator + SettingsScreen : petits ajustements layout.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import 'react-native-gesture-handler';
|
|
import './global.css';
|
|
import { useEffect } from 'react';
|
|
import { Platform } from 'react-native';
|
|
import { StatusBar } from 'expo-status-bar';
|
|
import * as NavigationBar from 'expo-navigation-bar';
|
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
import { Toaster } from 'sonner-native';
|
|
import { PortalHost } from '@rn-primitives/portal';
|
|
import { NetworkProvider } from '@/contexts/NetworkContext';
|
|
import { NetworkToastWatcher } from '@/contexts/ToastContext';
|
|
import RootNavigator from '@/navigation/RootNavigator';
|
|
|
|
export default function App() {
|
|
useEffect(() => {
|
|
if (Platform.OS === 'android') {
|
|
NavigationBar.setButtonStyleAsync('dark');
|
|
}
|
|
}, []);
|
|
|
|
return (
|
|
<GestureHandlerRootView style={{ flex: 1 }}>
|
|
<SafeAreaProvider>
|
|
<NetworkProvider>
|
|
<NetworkToastWatcher>
|
|
<StatusBar style="dark" translucent backgroundColor="transparent" />
|
|
<RootNavigator />
|
|
<PortalHost />
|
|
<Toaster position="bottom-center" offset={120} />
|
|
</NetworkToastWatcher>
|
|
</NetworkProvider>
|
|
</SafeAreaProvider>
|
|
</GestureHandlerRootView>
|
|
);
|
|
}
|