mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
3af0c84aa5
Summary: Simplifies `RCTDeviceEventEmitter` to simply be an `EventEmitter`. The only thing special about it is that all native events are emitted on it and that `NativeEventEmitter` composes it. Changelog: [General][Removed] - Removed `RCTDeviceEventEmitter.sharedSubscribers`. Reviewed By: RSNara Differential Revision: D26163660 fbshipit-source-id: aedff8323d86947220fc293a74a19a3981fd875a
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
* @flow strict-local
|
|
*/
|
|
|
|
import {
|
|
type EventSubscription,
|
|
type IEventEmitter,
|
|
} from '../../vendor/emitter/EventEmitter';
|
|
import RCTDeviceEventEmitter from '../RCTDeviceEventEmitter';
|
|
|
|
/**
|
|
* Mock `NativeEventEmitter` to ignore Native Modules.
|
|
*/
|
|
export default class NativeEventEmitter<TEventToArgsMap: {...}>
|
|
implements IEventEmitter<TEventToArgsMap> {
|
|
addListener<TEvent: $Keys<TEventToArgsMap>>(
|
|
eventType: TEvent,
|
|
listener: (...args: $ElementType<TEventToArgsMap, TEvent>) => mixed,
|
|
context?: mixed,
|
|
): EventSubscription {
|
|
return RCTDeviceEventEmitter.addListener(eventType, listener, context);
|
|
}
|
|
|
|
emit<TEvent: $Keys<TEventToArgsMap>>(
|
|
eventType: TEvent,
|
|
...args: $ElementType<TEventToArgsMap, TEvent>
|
|
): void {
|
|
RCTDeviceEventEmitter.emit(eventType, ...args);
|
|
}
|
|
|
|
removeAllListeners<TEvent: $Keys<TEventToArgsMap>>(
|
|
eventType?: ?TEvent,
|
|
): void {
|
|
RCTDeviceEventEmitter.removeAllListeners(eventType);
|
|
}
|
|
|
|
listenerCount<TEvent: $Keys<TEventToArgsMap>>(eventType: TEvent): number {
|
|
return RCTDeviceEventEmitter.listenerCount(eventType);
|
|
}
|
|
}
|