feat: message reaction

This commit is contained in:
zerosoul
2022-03-05 13:26:06 +08:00
parent acd007fb71
commit 2579761c7a
28 changed files with 826 additions and 304 deletions
+19
View File
@@ -39,6 +39,23 @@ const channelMsgSlice = createSlice({
state[id] = { [mid]: newMsg };
}
},
deleteChannelMsg(state, action) {
const { id, mid } = action.payload;
console.log("delete channel message", id, mid, state[id][mid]);
if (state[id][mid]) {
// 添加removed标识
// state[id][mid]["removed"] = true;
delete state[id][mid];
}
},
likeChannelMsg(state, action) {
const { id, mid, action: emoji } = action.payload;
console.log("add user likes message", id, mid, state[id][mid]);
if (state[id][mid]) {
const currLikes = state[id][mid].likes;
state[id][mid].likes = currLikes ? [...currLikes, emoji] : [emoji];
}
},
setChannelMsgRead(state, action) {
const { id, mid } = action.payload;
console.log("set unread", id, mid);
@@ -54,6 +71,8 @@ const channelMsgSlice = createSlice({
},
});
export const {
deleteChannelMsg,
likeChannelMsg,
clearChannelMsg,
initChannelMsg,
clearChannelMsgUnread,
+19
View File
@@ -38,6 +38,23 @@ const userMsgSlice = createSlice({
state[id] = { [mid]: newMsg };
}
},
likeUserMsg(state, action) {
const { id, mid, action: emoji } = action.payload;
console.log("add user likes", id, mid, state[id][mid]);
if (state[id][mid]) {
const currLikes = state[id][mid].likes;
state[id][mid].likes = currLikes ? [...currLikes, emoji] : [emoji];
}
},
deleteUserMsg(state, action) {
const { id, mid } = action.payload;
console.log("delete user message", id, mid);
if (state[id][mid]) {
// 添加removed标识
// state[id][mid].removed = true;
delete state[id][mid];
}
},
setUserMsgRead(state, action) {
const { id, mid } = action.payload;
console.log("set unread", id, mid);
@@ -51,6 +68,8 @@ const userMsgSlice = createSlice({
},
});
export const {
likeUserMsg,
deleteUserMsg,
clearUserMsg,
initUserMsg,
addUserMsg,
+5
View File
@@ -1,6 +1,7 @@
import { createSlice } from "@reduxjs/toolkit";
const initialState = {
ready: false,
menuExpand: true,
setting: false,
channelSetting: null,
@@ -9,6 +10,9 @@ const uiSlice = createSlice({
name: "ui",
initialState,
reducers: {
setReady(state) {
state.ready = true;
},
toggleMenuExpand(state) {
state.menuExpand = !state.menuExpand;
},
@@ -23,6 +27,7 @@ const uiSlice = createSlice({
},
});
export const {
setReady,
toggleSetting,
toggleMenuExpand,
toggleChannelSetting,