Mobile: - Replace LibraryScreen with MyPlantsScreen (date-grouped scan list, swipe actions, search, pull-to-refresh) - Add ScanDetailScreen (immersive hero, confidence bar, cepage card, share/delete) - Add DiseaseDetailScreen + GuideDetailScreen (hero pattern, animated entry) - Add useScanDetail, useHistory (useCallback fix), dateGrouping utility - Connect diseases/guides to admin API with cache + offline fallback - Add NetworkContext, ToastContext, Skeleton loading components - Extend ScanRecord type (isFavorite, location) - Full i18n FR/EN for all new screens Admin (vineye-admin): - Enrich Disease/Guide Prisma schema (timeline, conditions, actions, sections) - Enriched disease-form (7 sections) + guide-form (structured sections editor) - Add mobile public API endpoints (diseases, guides by slug) - Add Prisma migration + enriched seed data - UI polish: sidebar, login, layout updates Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
39 lines
1.3 KiB
TypeScript
39 lines
1.3 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.setBackgroundColorAsync('transparent');
|
|
NavigationBar.setPositionAsync('absolute');
|
|
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>
|
|
);
|
|
}
|