78 lines
1.6 KiB
TypeScript
78 lines
1.6 KiB
TypeScript
import React, { useEffect } from 'react';
|
|
import { LogBox, StyleSheet } from 'react-native';
|
|
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
import { PaperProvider } from 'react-native-paper';
|
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
import AppNavigator from './src/navigation/AppNavigator';
|
|
import notifee from '@notifee/react-native';
|
|
|
|
import {
|
|
backgroundHandler,
|
|
foregroundListener,
|
|
requestPermission,
|
|
setupFirebaseHandlers,
|
|
setupNotificationPressHandlers,
|
|
tokenRefreshHandler,
|
|
} from './src/utils/firebase/firebaseServices';
|
|
|
|
|
|
import { ThemeProvider } from './src/theme/ThemeProvider';
|
|
|
|
|
|
LogBox.ignoreAllLogs(true);
|
|
const queryClient = new QueryClient({
|
|
defaultOptions: {
|
|
queries: {
|
|
retry: 2,
|
|
staleTime: 1000 * 60 * 5, // 5 minutes
|
|
},
|
|
},
|
|
});
|
|
|
|
function App() {
|
|
|
|
|
|
useEffect(() => {
|
|
requestPermission();
|
|
backgroundHandler();
|
|
setupFirebaseHandlers();
|
|
setupNotificationPressHandlers();
|
|
|
|
const unsubscribe = foregroundListener();
|
|
const unsubscribeRefresh = tokenRefreshHandler();
|
|
|
|
notifee.createChannel({
|
|
id: 'default',
|
|
name: 'Default Channel',
|
|
importance: 4,
|
|
});
|
|
|
|
return () => {
|
|
unsubscribe();
|
|
unsubscribeRefresh();
|
|
};
|
|
}, []);
|
|
|
|
|
|
|
|
return (
|
|
<SafeAreaProvider>
|
|
<QueryClientProvider client={queryClient}>
|
|
<ThemeProvider>
|
|
<PaperProvider >
|
|
<AppNavigator />
|
|
</PaperProvider>
|
|
</ThemeProvider>
|
|
</QueryClientProvider>
|
|
</SafeAreaProvider>
|
|
);
|
|
}
|
|
|
|
export default App;
|
|
|
|
const styles = StyleSheet.create({
|
|
container: {
|
|
flex: 1,
|
|
},
|
|
});
|