UNPKG

@trycourier/courier-react-native

Version:

Inbox, Push Notifications, and Preferences for React Native

25 lines (24 loc) 841 B
import { NativeEventEmitter, Platform, DeviceEventEmitter } from "react-native"; import { Modules } from "./Modules"; export default class Broadcaster { emitter; constructor(module) { this.emitter = new NativeEventEmitter(module); } /** * Creates an event listener for the native function * @param key Key for the listener * @param callback Value returned for the listener callback * @returns Subscription */ async addListener(id, callback) { await Modules.Shared.attachEmitter(id); if (Platform.OS === 'android') { return DeviceEventEmitter.addListener(id, (event) => callback(event)); } if (Platform.OS === 'ios') { return this.emitter.addListener(id, (event) => callback(event)); } return undefined; } }