react-native-navigation的迁移库

EventsRegistry.ts 1.6KB

1234567891011121314151617181920212223242526272829303132
  1. import { NativeEventsReceiver } from '../adapters/NativeEventsReceiver';
  2. import { CommandsObserver } from './CommandsObserver';
  3. import { EventSubscription } from '../interfaces/EventSubscription';
  4. export class EventsRegistry {
  5. constructor(private nativeEventsReceiver: NativeEventsReceiver, private commandsObserver: CommandsObserver) { }
  6. public onAppLaunched(callback: () => void): EventSubscription {
  7. return this.nativeEventsReceiver.registerOnAppLaunched(callback);
  8. }
  9. public componentDidAppear(callback: (componentId: string, componentName: string) => void): EventSubscription {
  10. return this.nativeEventsReceiver.registerComponentDidAppear(({ componentId, componentName }) => callback(componentId, componentName));
  11. }
  12. public componentDidDisappear(callback: (componentId: string, componentName: string) => void): EventSubscription {
  13. return this.nativeEventsReceiver.registerComponentDidDisappear(({ componentId, componentName }) => callback(componentId, componentName));
  14. }
  15. public onNavigationButtonPressed(callback: (componentId: string, buttonId: string) => void): EventSubscription {
  16. return this.nativeEventsReceiver.registerOnNavigationButtonPressed(({ componentId, buttonId }) => callback(componentId, buttonId));
  17. }
  18. public onNavigationCommand(callback: (name: string, params: any) => void): EventSubscription {
  19. return this.commandsObserver.register(callback);
  20. }
  21. public onNavigationEvent(callback: (name: string, params: any) => void): EventSubscription {
  22. return this.nativeEventsReceiver.registerOnNavigationEvent(({ name, params }) => callback(name, params));
  23. }
  24. }