react-native-navigation的迁移库

EventsRegistry.ts 4.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. import { EmitterSubscription } from 'react-native';
  2. import { NativeEventsReceiver } from '../adapters/NativeEventsReceiver';
  3. import { CommandsObserver } from './CommandsObserver';
  4. import { EventSubscription } from '../interfaces/EventSubscription';
  5. import { ComponentEventsObserver } from './ComponentEventsObserver';
  6. import {
  7. ComponentDidAppearEvent,
  8. ComponentDidDisappearEvent,
  9. NavigationButtonPressedEvent,
  10. SearchBarUpdatedEvent,
  11. SearchBarCancelPressedEvent,
  12. PreviewCompletedEvent,
  13. ModalDismissedEvent,
  14. ScreenPoppedEvent,
  15. ModalAttemptedToDismissEvent
  16. } from '../interfaces/ComponentEvents';
  17. import {
  18. CommandCompletedEvent,
  19. BottomTabSelectedEvent,
  20. BottomTabLongPressedEvent,
  21. BottomTabPressedEvent
  22. } from '../interfaces/Events';
  23. import { NavigationComponentListener } from 'react-native-navigation/interfaces/NavigationComponentListener';
  24. export class EventsRegistry {
  25. constructor(
  26. private nativeEventsReceiver: NativeEventsReceiver,
  27. private commandsObserver: CommandsObserver,
  28. private componentEventsObserver: ComponentEventsObserver
  29. ) {}
  30. public registerAppLaunchedListener(
  31. callback: () => void
  32. ): EmitterSubscription {
  33. return this.nativeEventsReceiver.registerAppLaunchedListener(callback);
  34. }
  35. public registerComponentDidAppearListener(
  36. callback: (event: ComponentDidAppearEvent) => void
  37. ): EmitterSubscription {
  38. return this.nativeEventsReceiver.registerComponentDidAppearListener(
  39. callback
  40. );
  41. }
  42. public registerComponentDidDisappearListener(
  43. callback: (event: ComponentDidDisappearEvent) => void
  44. ): EmitterSubscription {
  45. return this.nativeEventsReceiver.registerComponentDidDisappearListener(
  46. callback
  47. );
  48. }
  49. public registerCommandCompletedListener(
  50. callback: (event: CommandCompletedEvent) => void
  51. ): EmitterSubscription {
  52. return this.nativeEventsReceiver.registerCommandCompletedListener(callback);
  53. }
  54. public registerBottomTabSelectedListener(
  55. callback: (event: BottomTabSelectedEvent) => void
  56. ): EmitterSubscription {
  57. return this.nativeEventsReceiver.registerBottomTabSelectedListener(
  58. callback
  59. );
  60. }
  61. public registerBottomTabPressedListener(
  62. callback: (event: BottomTabPressedEvent) => void
  63. ): EmitterSubscription {
  64. return this.nativeEventsReceiver.registerBottomTabPressedListener(callback);
  65. }
  66. public registerBottomTabLongPressedListener(
  67. callback: (event: BottomTabLongPressedEvent) => void
  68. ): EmitterSubscription {
  69. return this.nativeEventsReceiver.registerBottomTabLongPressedListener(
  70. callback
  71. );
  72. }
  73. public registerNavigationButtonPressedListener(
  74. callback: (event: NavigationButtonPressedEvent) => void
  75. ): EmitterSubscription {
  76. return this.nativeEventsReceiver.registerNavigationButtonPressedListener(
  77. callback
  78. );
  79. }
  80. public registerModalDismissedListener(
  81. callback: (event: ModalDismissedEvent) => void
  82. ): EmitterSubscription {
  83. return this.nativeEventsReceiver.registerModalDismissedListener(callback);
  84. }
  85. public registerModalAttemptedToDismissListener(
  86. callback: (event: ModalAttemptedToDismissEvent) => void
  87. ): EmitterSubscription {
  88. return this.nativeEventsReceiver.registerModalAttemptedToDismissListener(
  89. callback
  90. );
  91. }
  92. public registerSearchBarUpdatedListener(
  93. callback: (event: SearchBarUpdatedEvent) => void
  94. ): EmitterSubscription {
  95. return this.nativeEventsReceiver.registerSearchBarUpdatedListener(callback);
  96. }
  97. public registerSearchBarCancelPressedListener(
  98. callback: (event: SearchBarCancelPressedEvent) => void
  99. ): EmitterSubscription {
  100. return this.nativeEventsReceiver.registerSearchBarCancelPressedListener(
  101. callback
  102. );
  103. }
  104. public registerPreviewCompletedListener(
  105. callback: (event: PreviewCompletedEvent) => void
  106. ): EmitterSubscription {
  107. return this.nativeEventsReceiver.registerPreviewCompletedListener(callback);
  108. }
  109. public registerCommandListener(
  110. callback: (name: string, params: any) => void
  111. ): EventSubscription {
  112. return this.commandsObserver.register(callback);
  113. }
  114. public bindComponent(
  115. component: React.Component<any>,
  116. componentId?: string
  117. ): EventSubscription {
  118. return this.componentEventsObserver.bindComponent(component, componentId);
  119. }
  120. public registerComponentListener(
  121. listener: NavigationComponentListener,
  122. componentId: string
  123. ): EventSubscription {
  124. return this.componentEventsObserver.registerComponentListener(listener, componentId);
  125. }
  126. public registerScreenPoppedListener(
  127. callback: (event: ScreenPoppedEvent) => void
  128. ): EmitterSubscription {
  129. return this.nativeEventsReceiver.registerScreenPoppedListener(callback);
  130. }
  131. }