@@ -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