UNPKG

@livelike/react-native

Version:

LiveLike React Native package

69 lines (68 loc) 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useChatMessagesEffect = useChatMessagesEffect; var _javascript = require("@livelike/javascript"); var _react = require("react"); var _chatMessage = require("../store/chatMessage"); var _useAnalytics = require("./useAnalytics"); function useChatMessagesEffect(_ref) { let { roomId } = _ref; const { trackEvent } = (0, _useAnalytics.useAnalytics)(); (0, _react.useEffect)(() => { if (!roomId) { return; } (0, _javascript.getMessageList)(roomId).then(res => { _chatMessage.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') { _chatMessage.chatMessageStoreActions.addChatMessageAction({ roomId, chatMessage: message }); trackEvent('Chat Message Received', { roomId, message }); } if (event === 'messagedeleted') { _chatMessage.chatMessageStoreActions.deleteChatMessageAction({ roomId, chatMessage: message }); trackEvent('Chat Message Deleted', { roomId, message }); } } (0, _javascript.addMessageListener)({ roomId }, onMessage); return () => { (0, _javascript.removeMessageListener)({ roomId }, onMessage); }; }, [roomId]); } //# sourceMappingURL=useChatMessagesEffect.js.map