react-native-firebase/lib/modules/links/index.js

59 lines
1.3 KiB
JavaScript
Raw Normal View History

2017-08-20 14:57:06 +00:00
import { NativeEventEmitter, NativeModules } from 'react-native'
import { Base } from './../base'
import { nativeSDKMissing } from './../../utils'
2017-08-20 14:57:06 +00:00
const FirebaseLinks = NativeModules.RNFirebaseLinks
const FirebaseLinksEvt = FirebaseLinks && new NativeEventEmitter(FirebaseLinks)
const EVENT_TYPE = {
Link: 'dynamic_link_received',
2017-08-20 14:57:06 +00:00
}
/**
* @class Links
*/
export default class Links extends Base {
constructor(firebase, options = {}) {
2017-08-20 14:57:06 +00:00
super(firebase, options)
if (!FirebaseLinks) {
2017-08-20 14:57:06 +00:00
return nativeSDKMissing('links')
}
2017-08-20 14:57:06 +00:00
this.namespace = 'firebase:links'
}
get EVENT_TYPE() {
2017-08-20 14:57:06 +00:00
return EVENT_TYPE
}
/**
* Returns the link that triggered application open
* @returns {*}
*/
getInitialLink() {
2017-08-20 14:57:06 +00:00
return FirebaseLinks.getInitialLink()
}
/**
* Subscribe to dynamic links
* @param listener
* @returns {*}
*/
onLink(listener: Function): () => any {
2017-08-20 14:57:06 +00:00
const rnListener = FirebaseLinksEvt.addListener(EVENT_TYPE.Link, listener)
return () => rnListener.remove()
}
createLink(parameters: Object = {}): Promise<String> {
return FirebaseLinks.createLink(parameters)
}
2017-08-20 14:57:06 +00:00
// buildShortDynamicLink(link: string, domain: string): Promise {
// return FirebaseLinks.buildShortDynamicLink(link, domain)
// }
}
export const statics = {
EVENT_TYPE,
2017-08-20 14:57:06 +00:00
}