@applicaster/zapp-react-native-bridge
Version:
Applicaster Zapp React Native modules
46 lines (38 loc) • 1.16 kB
text/typescript
import { NativeModules } from "react-native";
interface PushBridgeInterface {
registerTags: (tags: string[]) => Promise<void>;
unregisterTags: (tags: string[]) => Promise<void>;
getRegisteredTags: () => Promise<string[]>;
}
// eslint-disable-next-line prefer-promise-reject-errors
const nullPromise = () => Promise.reject("Push Notification bridge is null");
const defaultPushNotification = {
registerTags: nullPromise,
unregisterTags: nullPromise,
getRegisteredTags: nullPromise,
};
const { PushBridge = defaultPushNotification } = NativeModules as {
PushBridge: PushBridgeInterface;
};
export const pushBridge = {
/**
* Register push tags to push notification provider
* @param {String} tags Tags array to register
*/
async registerTags(tags) {
return PushBridge.registerTags(tags);
},
/**
* Unregister push tags to push notification provider
* @param {String} tags Tags array to register
*/
async unregisterTags(tags) {
return PushBridge.unregisterTags(tags);
},
/**
* Retrieve tags from push providers
*/
async getRegisteredTags() {
return PushBridge.getRegisteredTags();
},
};