import { useEffect } from "react"; import messaging from "@react-native-firebase/messaging"; import notifee, { AndroidImportance, EventType } from "@notifee/react-native"; async function displayLocalNotification(title?: string, body?: string) { if (!title && !body) return; const channelId = await notifee.createChannel({ id: "default", name: "General", importance: AndroidImportance.HIGH, }); await notifee.displayNotification({ title, body, android: { channelId, pressAction: { id: "default" }, }, }); } export function usePushNotifications() { useEffect(() => { const unsubscribeMessage = messaging().onMessage(async remoteMessage => { const title = remoteMessage.data?.title as string | undefined; const body = remoteMessage.data?.body as string | undefined; await displayLocalNotification(title, body); }); const unsubscribeNotifee = notifee.onForegroundEvent(({ type, detail }) => { if (type === EventType.PRESS) { console.log("Notification tapped:", detail.notification); } }); return () => { unsubscribeMessage(); unsubscribeNotifee(); }; }, []); }