react-native-grovs-wrapper
Version:
Grovs react native SDK
58 lines (55 loc) • 2.04 kB
JavaScript
;
import { TurboModuleRegistry, NativeEventEmitter } from 'react-native';
import { log } from "./Logger.js";
// Get the native module from RN's registry
const NativeModule = TurboModuleRegistry.get('GrovsWrapper');
if (!NativeModule) {
log('info', 'Turbo module - Native module react-native-grovs-wrapper is not linked properly.');
throw new Error('Native module react-native-grovs-wrapper is not linked properly.');
}
export class TurboModuleGrovs {
// Simple methods
setIdentifier(identifier) {
NativeModule?.setIdentifier(identifier);
}
setPushToken(pushToken) {
NativeModule?.setPushToken(pushToken);
}
setAttributes(attributes) {
NativeModule?.setAttributes(attributes);
}
setSDK(enabled) {
NativeModule?.setSDK(enabled);
}
setDebug(level) {
NativeModule?.setDebug(level);
}
async generateLink(title, subtitle, imageURL, data, tags, customRedirects, showPreviewIos, showPreviewAndroid, tracking) {
if (!NativeModule) {
throw new Error('Native module GrovsWrapper is not linked');
}
return NativeModule?.generateLink(title, subtitle, imageURL, data, tags, customRedirects, showPreviewIos, showPreviewAndroid, tracking);
}
async displayMessages() {
return NativeModule?.displayMessages();
}
async numberOfUnreadMessages() {
if (!NativeModule) {
throw new Error('Native module GrovsWrapper is not linked');
}
return NativeModule?.numberOfUnreadMessages();
}
// Event subscription wrapper
onDeeplinkReceived(callback) {
const eventEmitter = NativeModule == null ? null : new NativeEventEmitter(NativeModule);
log('info', 'Turbo module - registering callback');
const subscription = eventEmitter?.addListener('onGrovsDeeplinkReceived', callback);
NativeModule?.markReadyToHandleDeeplinks();
return {
remove: () => subscription?.remove()
};
}
}
// Export a singleton instance if that fits your architecture
export default new TurboModuleGrovs();
//# sourceMappingURL=NativeGrovsWrapper.js.map