airbridge-react-native-sdk
Version:
Airbridge SDK for React Native
40 lines • 1.28 kB
JavaScript
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