@100mslive/react-native-room-kit
Version:
100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps.
39 lines • 1.3 kB
JavaScript
import { useSelector } from 'react-redux';
import { useHMSHLSPlayerCue } from '@100mslive/react-native-hms';
import Toast from 'react-native-simple-toast';
export const HLSPlayerEmoticons = () => {
const hmsInstance = useSelector(state => state.user.hmsInstance);
useHMSHLSPlayerCue(cue => {
if (!hmsInstance) {
return;
}
const payloadStr = cue.payloadval;
if (typeof payloadStr === 'string') {
try {
const emoticonMessage = JSON.parse(payloadStr);
if (emoticonMessage.type === 'EMOJI_REACTION') {
const peer = hmsInstance.getPeerFromPeerId(emoticonMessage.senderId);
Toast.showWithGravity(`${peer === null || peer === void 0 ? void 0 : peer.name} ${getEmojiByString(emoticonMessage.emojiId)}`, Toast.LONG, Toast.TOP);
}
} catch (error) {
const message = `HLSPlayerEmoticons: HLS Cue Payload is not JSON: ${error}`;
console.log(message);
}
}
}, []);
return null;
};
const emojiMap = {
'+1': '👍',
'-1': '👎',
'wave': '👋',
'clap': '👏',
'fire': '🔥',
'tada': '🎉',
'heart_eyes': '😍',
'joy': '😂',
'open_mouth': '😮',
'sob': '😭'
};
const getEmojiByString = emojiCode => emojiMap[emojiCode] || '👍';
//# sourceMappingURL=HLSPlayerEmoticons.js.map