Conversation
8215854 to
22f5b88
Compare
|
@cursor review |
22f5b88 to
e39a910
Compare
4519c2c to
91b9f62
Compare
e64e827 to
39ece28
Compare
39ece28 to
837035c
Compare
6f4c1a7 to
a9b01f0
Compare
There was a problem hiding this comment.
Pull Request Overview
This PR migrates Eigen from using react-native-push-notification to notifee for handling push notifications, consolidating the push notification logic across iOS and Android platforms while maintaining the same functionality.
Key changes include:
- Complete replacement of
react-native-push-notificationwithnotifeeand Firebase Messaging - Consolidation of push notification handling logic between iOS and Android
- Introduction of new unified hooks for notification management
Reviewed Changes
Copilot reviewed 49 out of 52 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/app/utils/PushNotification.ts | Simplified to only handle token saving, removing notification handling logic |
| src/app/system/notifications/ | New notification system using notifee with unified hooks for channels, FCM messages, and notification handling |
| src/setupJest.tsx | Updated mocks to reflect new notification libraries |
| package.json | Replaced react-native-push-notification with notifee and Firebase packages |
| ios/android config | Updated native configurations to work with new notification system |
Comments suppressed due to low confidence (1)
src/app/system/notifications/tests/useHandlePushNotifications.tests.ts:1
- Using
// @ts-ignoresuppresses TypeScript errors but should be avoided. If this component isn't used in the test file, consider removing it or properly typing it.
import notifee, { Event, EventType, Notification } from "@notifee/react-native"
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| token = (await LegacyNativeModules.ArtsyNativeModule.getPushToken()) ?? "" | ||
| } | ||
|
|
||
| if (!token) { |
There was a problem hiding this comment.
The function checks for falsy token but doesn't handle the case where token is an empty string explicitly. Consider using if (!token || token.trim() === '') to handle empty string tokens properly.
| if (!token) { | |
| if (!token || token.trim() === '') { |
There was a problem hiding this comment.
Using // @ts-ignore suppresses TypeScript errors and should be avoided. Consider properly typing the component or removing the annotation if it's not necessary.
| // @ts-ignore | |
| const Content: React.FC = () => { | |
| const Content = () => { |
c36f5d2 to
73f7fc4
Compare
73f7fc4 to
b03a25c
Compare
araujobarret
left a comment
There was a problem hiding this comment.
I think we need to tweak Expo related config https://rnfirebase.io/messaging/usage#expo
ccb0762 to
22b6b9c
Compare
|
🚀 🚀 🚀 🚀 🚀 |
Description
This PR migrates Eigen to use
notifeeinstead ofreact-native-push-notificationto handle our push notifications.Current state analysis
Our push notifications handling logic is different between iOS and Android, making it tricky to keep the same logic between both. The iOS code for example, has a lot of complexity from the days where we had plenty of native screens, that is no longer required.
Changes made
After this PR we will be consolidating many parts of our notifications infra across both platforms. This is how the logic will be now.
We will have a single hook that is shared between both platforms to manage push notifications (
usePushNotifications). This hook will contain logic to listen to push notification events and handle it.Note:
QA Doc here: https://www.notion.so/artsy/2025-09-29-Mobile-Feature-QA-Notifee-272cab0764a080b69da1cfbbcffa9616
PR Checklist
To the reviewers 👀
Changelog updates
Changelog updates
Cross-platform user-facing changes
iOS user-facing changes
Android user-facing changes
Dev changes
Need help with something? Have a look at our docs, or get in touch with us.