UNPKG

agora-react-native-rtm

Version:

React Native around the Agora RTM SDKs for Android and iOS agora

25 lines 712 B
import { useEffect, useRef } from 'react'; function listen(listenable, event, listener) { listenable.addEventListener(event, listener); return () => listenable.removeEventListener(event, listener); } export function useRtmEvent(client, event, listener) { const listenerRef = useRef(listener); useEffect(() => { listenerRef.current = listener; }, [listener]); useEffect(() => { if (client) { return listen(client, event, (...args) => { if (listenerRef.current) { listenerRef.current(...args); } }); } else { return () => { throw new Error('client is null'); }; } }, [event, client]); } //# sourceMappingURL=useRtmEvent.js.map