Skip to content

Instantly share code, notes, and snippets.

View dratwas's full-sized avatar
🤠

Drapich Piotr dratwas

🤠
View GitHub Profile
import {
NativeModules,
NativeEventEmitter,
} from 'react-native';
const {
NMWithEmitterOne,
NMWithEmitterTwo,
NMWithEmitterN,
} = NativeModules;
@implementation CalendarManager
{
bool hasListeners;
}
// Will be called when this module's first listener is added.
-(void)startObserving {
hasListeners = YES;
}
- (void)sessionDidConnect:(Session*)session {
[[NSNotificationCenter defaultCenter]
postNotificationName:@"onSessionConnect"
object:nil
userInfo:@{@"sessionId": session.sessionId}];
}
#import "EventEmitterModule.h"
@implementation EventEmitterModule
{
bool hasListeners;
}
RCT_EXPORT_MODULE();
- (NSArray<NSString *> *)supportedEvents {
return @[@"onSessionDidConnect"];
#import <React/RCTBridgeModule.h>
#import <React/RCTEventEmitter.h>
@interface EventEmitterModule : RCTEventEmitter <RCTBridgeModule>
@end
subscription.remove();
import {
NativeModules,
Platform,
NativeEventEmitter,
DeviceEventEmitter,
} from 'react-native';
export default Platform.select({
ios: new NativeEventEmitter(NativeModules.ModuleWithEmitter),
android: DeviceEventEmitter,
import { NativeEventEmitter, NativeModules } from 'react-native';
const { ModuleWithEmitter } = NativeModules;
const eventEmitter = new NativeEventEmitter(ModuleWithEmitter);
const onSessionConnect = (event) => {
console.log(event);
}
const subscription = eventEmitter.addListener('onSessionConnect', onSessionConnect);
[self sendEventWithName:@"onSessionConnect" body:@{@"sessionId": session.sessionId}];
#import "ModuleWithEmitter.h"
@implementation ModuleWithEmitter
- (NSArray<NSString *> *)supportedEvents {
return @[@"onSessionConnect"];
}
@end