UNPKG

@livelike/react-native

Version:

LiveLike React Native package

63 lines 1.6 kB
import { addMessageListener, getMessageList, removeMessageListener } from '@livelike/javascript'; import { useEffect } from 'react'; import { chatMessageStoreActions } from '../store/chatMessage'; import { useAnalytics } from './useAnalytics'; export function useChatMessagesEffect(_ref) { let { roomId } = _ref; const { trackEvent } = useAnalytics(); useEffect(() => { if (!roomId) { return; } getMessageList(roomId).then(res => { chatMessageStoreActions.updateChatMessageStateAction({ roomId, chatMessages: res.messages, messageListIterator: res.done ? undefined : res.next, chatMessagesLoaded: true }); trackEvent('Chat Message History Loaded', { roomId }); }); function onMessage(_ref2) { let { event, message } = _ref2; if (event === 'messagereceived') { chatMessageStoreActions.addChatMessageAction({ roomId, chatMessage: message }); trackEvent('Chat Message Received', { roomId, message }); } if (event === 'messagedeleted') { chatMessageStoreActions.deleteChatMessageAction({ roomId, chatMessage: message }); trackEvent('Chat Message Deleted', { roomId, message }); } } addMessageListener({ roomId }, onMessage); return () => { removeMessageListener({ roomId }, onMessage); }; }, [roomId]); } //# sourceMappingURL=useChatMessagesEffect.js.map