123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import { NativeModules, NativeEventEmitter, EventEmitter, EmitterSubscription } from 'react-native';
- import {
- ComponentDidAppearEvent,
- ComponentDidDisappearEvent,
- NavigationButtonPressedEvent,
- SearchBarUpdatedEvent,
- SearchBarCancelPressedEvent,
- PreviewCompletedEvent,
- ModalDismissedEvent,
- ScreenPoppedEvent,
- ModalAttemptedToDismissEvent
- } from '../interfaces/ComponentEvents';
- import { CommandCompletedEvent, BottomTabSelectedEvent } from '../interfaces/Events';
-
- export class NativeEventsReceiver {
- private emitter: EventEmitter;
- constructor() {
- // NOTE: This try catch is workaround for integration tests
- // TODO: mock NativeEventEmitter in integration tests rather done adding try catch in source code
- try {
- this.emitter = new NativeEventEmitter(NativeModules.RNNEventEmitter);
- } catch (e) {
- this.emitter = {
- addListener: () => {
- return {
- remove: () => undefined
- };
- }
- } as any as EventEmitter;
- }
- }
-
- public registerAppLaunchedListener(callback: () => void): EmitterSubscription {
- return this.emitter.addListener('RNN.AppLaunched', callback);
- }
-
- public registerComponentDidAppearListener(callback: (event: ComponentDidAppearEvent) => void): EmitterSubscription {
- return this.emitter.addListener('RNN.ComponentDidAppear', callback);
- }
-
- public registerComponentDidDisappearListener(callback: (event: ComponentDidDisappearEvent) => void): EmitterSubscription {
- return this.emitter.addListener('RNN.ComponentDidDisappear', callback);
- }
-
- public registerNavigationButtonPressedListener(callback: (event: NavigationButtonPressedEvent) => void): EmitterSubscription {
- return this.emitter.addListener('RNN.NavigationButtonPressed', callback);
- }
-
- public registerModalDismissedListener(callback: (event: ModalDismissedEvent) => void): EmitterSubscription {
- return this.emitter.addListener('RNN.ModalDismissed', callback);
- }
-
- public registerModalAttemptedToDismissListener(callback: (event: ModalAttemptedToDismissEvent) => void): EmitterSubscription {
- return this.emitter.addListener('RNN.ModalAttemptedToDismiss', callback);
- }
-
- public registerSearchBarUpdatedListener(callback: (event: SearchBarUpdatedEvent) => void): EmitterSubscription {
- return this.emitter.addListener('RNN.SearchBarUpdated', callback);
- }
-
- public registerSearchBarCancelPressedListener(callback: (event: SearchBarCancelPressedEvent) => void): EmitterSubscription {
- return this.emitter.addListener('RNN.SearchBarCancelPressed', callback);
- }
-
- public registerPreviewCompletedListener(callback: (event: PreviewCompletedEvent) => void): EmitterSubscription {
- return this.emitter.addListener('RNN.PreviewCompleted', callback);
- }
-
- public registerCommandCompletedListener(callback: (data: CommandCompletedEvent) => void): EmitterSubscription {
- return this.emitter.addListener('RNN.CommandCompleted', callback);
- }
-
- public registerBottomTabSelectedListener(callback: (data: BottomTabSelectedEvent) => void): EmitterSubscription {
- return this.emitter.addListener('RNN.BottomTabSelected', callback);
- }
-
- public registerScreenPoppedListener(callback: (event: ScreenPoppedEvent) => void): EmitterSubscription {
- return this.emitter.addListener('RNN.ScreenPopped', callback);
- }
- }
|