Skip to content

Commit 954df65

Browse files
committed
feat: add logout method to Iterable class and refactor event listener management
1 parent 03d7967 commit 954df65

File tree

1 file changed

+29
-8
lines changed

1 file changed

+29
-8
lines changed

src/core/classes/Iterable.ts

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -890,6 +890,34 @@ export class Iterable {
890890
});
891891
}
892892

893+
/**
894+
* Logs out the current user from the Iterable SDK.
895+
*
896+
* This method will remove all event listeners for the Iterable SDK and set the email and user ID to null.
897+
*
898+
* @example
899+
* ```typescript
900+
* Iterable.logout();
901+
* ```
902+
*/
903+
static logout() {
904+
Iterable.removeAllEventListeners();
905+
Iterable.setEmail(null);
906+
Iterable.setUserId(null);
907+
}
908+
909+
/**
910+
* Removes all event listeners for the Iterable SDK.
911+
*/
912+
private static removeAllEventListeners() {
913+
RNEventEmitter.removeAllListeners(IterableEventName.handleUrlCalled);
914+
RNEventEmitter.removeAllListeners(IterableEventName.handleInAppCalled);
915+
RNEventEmitter.removeAllListeners(IterableEventName.handleCustomActionCalled);
916+
RNEventEmitter.removeAllListeners(IterableEventName.handleAuthCalled);
917+
RNEventEmitter.removeAllListeners(IterableEventName.handleAuthSuccessCalled);
918+
RNEventEmitter.removeAllListeners(IterableEventName.handleAuthFailureCalled);
919+
}
920+
893921
/**
894922
* Sets up event handlers for various Iterable events.
895923
*
@@ -912,14 +940,7 @@ export class Iterable {
912940
*/
913941
private static setupEventHandlers() {
914942
// Remove all listeners to avoid duplicate listeners
915-
RNEventEmitter.removeAllListeners(IterableEventName.handleUrlCalled);
916-
RNEventEmitter.removeAllListeners(IterableEventName.handleInAppCalled);
917-
RNEventEmitter.removeAllListeners(
918-
IterableEventName.handleCustomActionCalled
919-
);
920-
RNEventEmitter.removeAllListeners(IterableEventName.handleAuthCalled);
921-
RNEventEmitter.removeAllListeners(IterableEventName.handleAuthSuccessCalled);
922-
RNEventEmitter.removeAllListeners(IterableEventName.handleAuthFailureCalled);
943+
Iterable.removeAllEventListeners();
923944

924945
if (Iterable.savedConfig.urlHandler) {
925946
RNEventEmitter.addListener(IterableEventName.handleUrlCalled, (dict) => {

0 commit comments

Comments
 (0)