Files
llink/js/mobile/src/App.tsx
T
2026-04-30 17:46:09 -07:00

41 lines
1.3 KiB
TypeScript

import { useEffect } from "react";
import { StatusBar } from "expo-status-bar";
import { QueryClientProvider } from "@tanstack/react-query";
import { GestureHandlerRootView } from "react-native-gesture-handler";
import { NavigationContainer } from "@react-navigation/native";
import {
initialWindowMetrics,
SafeAreaProvider,
} from "react-native-safe-area-context";
import { Toaster } from "sonner-native";
import { createQueryClient } from "@/lib/query-client";
import { PusherProvider } from "@/lib/pusher-provider";
import { RootNavigator } from "@/navigation/RootNavigator";
import { useAuthStore } from "@/stores/auth-store";
const queryClient = createQueryClient();
export default function App() {
const restoreSession = useAuthStore((s) => s.restoreSession);
useEffect(() => {
void restoreSession();
}, [restoreSession]);
return (
<GestureHandlerRootView style={{ flex: 1 }}>
<QueryClientProvider client={queryClient}>
<PusherProvider>
<SafeAreaProvider initialMetrics={initialWindowMetrics}>
<NavigationContainer>
<RootNavigator />
</NavigationContainer>
<Toaster />
<StatusBar style="light" />
</SafeAreaProvider>
</PusherProvider>
</QueryClientProvider>
</GestureHandlerRootView>
);
}