@livelike/react-native
Version:
LiveLike React Native package
69 lines (68 loc) • 1.79 kB
JavaScript
;
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