@tamagui/react-native-web-lite
Version:
React Native for Web
42 lines (41 loc) • 2.03 kB
JavaScript
import { invariant } from "@tamagui/react-native-web-internals";
import { Platform } from "@tamagui/react-native-web-internals";
import RCTDeviceEventEmitter from "./RCTDeviceEventEmitter.mjs";
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.mjs.map