@livelike/react-native
Version:
LiveLike React Native package
92 lines • 2.61 kB
JavaScript
import { createStore } from './store';
const initialChatMessageStore = {};
export const chatMessageStore = createStore(initialChatMessageStore);
export const chatMessageStoreActions = {
updateChatConfigAction(_ref) {
let {
roomId,
userAvatarUrl
} = _ref;
chatMessageStore.set({
...chatMessageStore.get(),
[]: {
...chatMessageStore.get()[roomId],
userAvatarUrl
}
});
},
updateChatMessageStateAction(_ref2) {
let {
roomId,
chatMessagesLoaded,
chatMessages,
messageListIterator
} = _ref2;
chatMessageStore.set({
...chatMessageStore.get(),
[]: {
...chatMessageStore.get()[roomId],
chatMessagesLoaded,
chatMessages,
messageListIterator
}
});
},
updatePrevChatMessagesStateAction(_ref3) {
let {
roomId,
chatMessages,
messageListIterator
} = _ref3;
chatMessageStore.set({
...chatMessageStore.get(),
[]: {
...chatMessageStore.get()[roomId],
chatMessages: [...chatMessages, ...chatMessageStore.get()[roomId].chatMessages],
messageListIterator
}
});
},
addChatMessageAction(_ref4) {
var _chatMessageStore$get;
let {
roomId,
chatMessage
} = _ref4;
const oldMessages = ((_chatMessageStore$get = chatMessageStore.get()[roomId]) === null || _chatMessageStore$get === void 0 ? void 0 : _chatMessageStore$get.chatMessages) ?? [];
const msgIndex = oldMessages.findIndex(msg => msg.id === chatMessage.id);
const updatedMessages = [...oldMessages];
if (msgIndex > -1) {
updatedMessages.splice(msgIndex, 1, chatMessage);
} else {
updatedMessages.push(chatMessage);
}
chatMessageStore.set({
...chatMessageStore.get(),
[]: {
...chatMessageStore.get()[roomId],
chatMessages: updatedMessages
}
});
},
deleteChatMessageAction(_ref5) {
var _chatMessageStore$get2;
let {
roomId,
chatMessage
} = _ref5;
const oldMessages = ((_chatMessageStore$get2 = chatMessageStore.get()[roomId]) === null || _chatMessageStore$get2 === void 0 ? void 0 : _chatMessageStore$get2.chatMessages) ?? [];
const updatedMessages = oldMessages.map(msg => msg.id === chatMessage.id ? {
...msg,
isDeleted: true
} : msg);
chatMessageStore.set({
...chatMessageStore.get(),
[]: {
...chatMessageStore.get()[roomId],
chatMessages: updatedMessages
}
});
}
};
//# sourceMappingURL=chatMessage.js.map