Files
circle-collect/App.tsx
T
2025-10-10 13:23:27 +05:30

58 lines
1.4 KiB
TypeScript

import React, { useEffect } from 'react';
import { StyleSheet, useColorScheme } from 'react-native';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import { PaperProvider } from 'react-native-paper';
import AppNavigator from './src/navigation/AppNavigator';
import notifee from '@notifee/react-native';
import { backgroundHandler, foregroundListener, requestPermission, setupFirebaseHandlers, setupNotificationPressHandlers, tokenRefreshHandler } from './src/utils/firebase/firebaseServices';
function App() {
const isDarkMode = useColorScheme() === 'dark';
useEffect(() => {
// 🔹 Ask for permission
requestPermission();
// 🔹 Handle background + quit state
backgroundHandler();
setupFirebaseHandlers()
setupNotificationPressHandlers()
// 🔹 Listen for foreground messages
const unsubscribe = foregroundListener();
// 🔹 Listen for token refresh
const unsubscribeRefresh = tokenRefreshHandler();
// 🔹 Create default notification channel (Android)
notifee.createChannel({
id: 'default',
name: 'Default Channel',
importance: 4, // HIGH
});
return () => {
unsubscribe();
unsubscribeRefresh();
};
}, []);
return (
<SafeAreaProvider>
<PaperProvider>
<AppNavigator />
</PaperProvider>
</SafeAreaProvider>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
},
});
export default App;