diff --git a/ios/RCTOneSignal/RCTOneSignal.m b/ios/RCTOneSignal/RCTOneSignal.m index 0415738b..4bd52256 100644 --- a/ios/RCTOneSignal/RCTOneSignal.m +++ b/ios/RCTOneSignal/RCTOneSignal.m @@ -150,6 +150,10 @@ - (void)onDidDismissInAppMessage:(OSInAppMessageDidDismissEvent * _Nonnull)event [self sendEvent:OSEventString(InAppMessageDidDismiss) withBody:[event jsonRepresentation]]; } +- (void)onUserJwtInvalidated:(OSUserJwtInvalidatedEvent * _Nonnull)event { + [self sendEvent:OSEventString(UserJwtInvalidated) withBody:[event jsonRepresentation]]; +} + - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } diff --git a/ios/RCTOneSignal/RCTOneSignalEventEmitter.h b/ios/RCTOneSignal/RCTOneSignalEventEmitter.h index ca153320..40a950db 100644 --- a/ios/RCTOneSignal/RCTOneSignalEventEmitter.h +++ b/ios/RCTOneSignal/RCTOneSignalEventEmitter.h @@ -23,9 +23,10 @@ typedef NS_ENUM(NSInteger, OSNotificationEventTypes) { InAppMessageDidDisplay, InAppMessageWillDismiss, InAppMessageDidDismiss, + UserJwtInvalidated, }; -#define OSNotificationEventTypesArray @[@"OneSignal-permissionChanged",@"OneSignal-subscriptionChanged",@"OneSignal-userStateChanged",@"OneSignal-notificationWillDisplayInForeground",@"OneSignal-notificationClicked",@"OneSignal-inAppMessageClicked", @"OneSignal-inAppMessageWillDisplay", @"OneSignal-inAppMessageDidDisplay", @"OneSignal-inAppMessageWillDismiss", @"OneSignal-inAppMessageDidDismiss"] +#define OSNotificationEventTypesArray @[@"OneSignal-permissionChanged",@"OneSignal-subscriptionChanged",@"OneSignal-userStateChanged",@"OneSignal-notificationWillDisplayInForeground",@"OneSignal-notificationClicked",@"OneSignal-inAppMessageClicked", @"OneSignal-inAppMessageWillDisplay", @"OneSignal-inAppMessageDidDisplay", @"OneSignal-inAppMessageWillDismiss", @"OneSignal-inAppMessageDidDismiss", @"OneSignal-userJwtInvalidated"] #define OSEventString(enum) [OSNotificationEventTypesArray objectAtIndex:enum] diff --git a/ios/RCTOneSignal/RCTOneSignalEventEmitter.m b/ios/RCTOneSignal/RCTOneSignalEventEmitter.m index 50bc26a4..cc407b1b 100644 --- a/ios/RCTOneSignal/RCTOneSignalEventEmitter.m +++ b/ios/RCTOneSignal/RCTOneSignalEventEmitter.m @@ -15,6 +15,7 @@ @implementation RCTOneSignalEventEmitter { BOOL _hasAddedNotificationForegroundLifecycleListener; BOOL _hasAddedInAppMessageClickListener; BOOL _hasAddedInAppMessageLifecycleListener; + BOOL _hasAddedUserJwtInvalidatedListener; NSMutableDictionary* _preventDefaultCache; NSMutableDictionary* _notificationWillDisplayCache; } @@ -104,14 +105,25 @@ + (void)sendEventWithName:(NSString *)name withBody:(NSDictionary *)body { [OneSignal initialize:appId withLaunchOptions:NULL]; } -RCT_EXPORT_METHOD(login:(NSString *)externalId) { - [OneSignal login:externalId]; +RCT_EXPORT_METHOD(login:(NSString *)externalId jwtToken:(NSString *)jwtToken) { + [OneSignal login:externalId withToken:jwtToken]; } RCT_EXPORT_METHOD(logout) { [OneSignal logout]; } +RCT_EXPORT_METHOD(updateUserJwt:(NSString *)externalId jwtToken:(NSString *)jwtToken) { + [OneSignal updateUserJwt:externalId withToken:jwtToken]; +} + +RCT_EXPORT_METHOD(addUserJwtInvalidatedListener) { + if (!_hasAddedUserJwtInvalidatedListener) { + [OneSignal addUserJwtInvalidatedListener:[RCTOneSignal sharedInstance]]; + _hasAddedUserJwtInvalidatedListener = true; + } +} + RCT_EXPORT_METHOD(enterLiveActivity:(NSString *)activityId withToken:(NSString *)token withResponse:(RCTResponseSenderBlock)callback) {