41 lines
1.3 KiB
TypeScript
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>
|
|
);
|
|
}
|