@trycourier/courier-react-native
Version:
Inbox, Push Notifications, and Preferences for React Native
25 lines (24 loc) • 804 B
JavaScript
import { NativeEventEmitter, Platform, DeviceEventEmitter } from "react-native";
import { Modules } from "./Modules";
export default class Broadcaster {
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;
}
}
//# sourceMappingURL=Broadcaster.js.map