UNPKG

rn-wifi-p2p

Version:

React Native module for Android P2P communication using Wi-Fi Direct.

38 lines (37 loc) 1.83 kB
"use strict"; import { DeviceEventEmitter } from 'react-native'; const MODULE_NAME = 'RN_WIFI_P2P'; const subscriptionsMap = new Map(); export const subscribeOnEvent = (event, callback) => { const fullEvent = `${MODULE_NAME}_${event}`; const subscription = DeviceEventEmitter.addListener(fullEvent, callback); if (!subscriptionsMap.has(fullEvent)) { subscriptionsMap.set(fullEvent, new Set()); } subscriptionsMap.get(fullEvent)?.add(subscription); return subscription; }; export const removeAllListenersFromEvent = event => { const fullEvent = `${MODULE_NAME}:${event}`; const subs = subscriptionsMap.get(fullEvent); if (!subs) return; for (const sub of subs) { sub.remove(); } subscriptionsMap.delete(fullEvent); }; export const removeAllSubscriptions = () => { subscriptionsMap.forEach(subs => { subs.forEach(sub => sub.remove()); }); subscriptionsMap.clear(); }; export const subscribeOnThisDeviceChanged = callback => subscribeOnEvent('THIS_DEVICE_CHANGED_ACTION', callback); export const removeAllListenersFromThisDeviceChanged = () => removeAllListenersFromEvent('THIS_DEVICE_CHANGED_ACTION'); export const subscribeOnPeersUpdates = callback => subscribeOnEvent('PEERS_UPDATED', callback); export const removeAllListenersFromPeersUpdates = () => removeAllListenersFromEvent('PEERS_UPDATED'); export const subscribeOnConnectionInfoUpdates = callback => subscribeOnEvent('CONNECTION_INFO_UPDATED', callback); export const removeAllListenersFromConnectionInfoUpdates = () => removeAllListenersFromEvent('CONNECTION_INFO_UPDATED'); export const subscribeOnMessageReceived = callback => subscribeOnEvent('MESSAGE_RECEIVED', callback); export const removeAllListenersFromMessageReceived = () => removeAllListenersFromEvent('MESSAGE_RECEIVED'); //# sourceMappingURL=subscriptions.js.map