UNPKG

@tamagui/react-native-web-lite

Version:
51 lines (50 loc) 2.07 kB
import { invariant } from "@tamagui/react-native-web-internals"; import { Platform } from "@tamagui/react-native-web-internals"; import RCTDeviceEventEmitter from "./RCTDeviceEventEmitter"; class NativeEventEmitter { constructor(nativeModule) { Platform.OS === "ios" && (invariant( nativeModule != null, "`new NativeEventEmitter()` requires a non-null argument." ), this._nativeModule = nativeModule); } addListener(eventType, listener, context) { var _this$_nativeModule; (_this$_nativeModule = this._nativeModule) == null || _this$_nativeModule.addListener(eventType); var subscription = RCTDeviceEventEmitter.addListener(eventType, listener, context); return { remove: () => { if (subscription != null) { var _this$_nativeModule2; (_this$_nativeModule2 = this._nativeModule) == null || _this$_nativeModule2.removeListeners(1), subscription.remove(), subscription = null; } } }; } /** * @deprecated Use `remove` on the EventSubscription from `addListener`. */ removeListener(eventType, listener) { var _this$_nativeModule3; (_this$_nativeModule3 = this._nativeModule) == null || _this$_nativeModule3.removeListeners(1), RCTDeviceEventEmitter.removeListener(eventType, listener); } emit(eventType) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) args[_key - 1] = arguments[_key]; RCTDeviceEventEmitter.emit(eventType, ...args); } removeAllListeners(eventType) { var _this$_nativeModule4; invariant( eventType != null, "`NativeEventEmitter.removeAllListener()` requires a non-null argument." ), (_this$_nativeModule4 = this._nativeModule) == null || _this$_nativeModule4.removeListeners(this.listenerCount(eventType)), RCTDeviceEventEmitter.removeAllListeners(eventType); } listenerCount(eventType) { return RCTDeviceEventEmitter.listenerCount(eventType); } } export { NativeEventEmitter as default }; //# sourceMappingURL=index.js.map