UNPKG

airbridge-react-native-sdk

Version:

Airbridge SDK for React Native

40 lines 1.28 kB
import { NativeModules, NativeEventEmitter } from 'react-native'; import { createInteractor } from '../architecture/Interactor'; import { check } from '../utility/check'; import { log } from '../utility/log'; export const createDependency = () => { }; createDependency.DeeplinkModule = () => ({ emitter: new NativeEventEmitter(NativeModules.DeeplinkInteractor), interactor: createInteractor(NativeModules.DeeplinkInteractor), }); export const createDeeplinkModule = () => { // create dependency const { emitter, interactor } = createDependency.DeeplinkModule(); // define member let cache; let listener = (deeplink) => { cache = deeplink; }; // initialize emitter.addListener('airbridge.deeplink', (deeplink) => { listener(deeplink); }); interactor.listen(); // define method const setOnDeeplinkReceived = (onReceived) => { if (!check.function(onReceived)) { log.unmatchedType('onReceived', 'function'); return; } if (cache !== undefined) { onReceived(cache); cache = undefined; } listener = onReceived; }; // create object return { setOnDeeplinkReceived, }; }; //# sourceMappingURL=Deeplink.js.map