feat: users online status

This commit is contained in:
zerosoul
2022-02-19 15:57:25 +08:00
parent f96ca44841
commit 656df7c670
10 changed files with 79 additions and 19 deletions
+26
View File
@@ -0,0 +1,26 @@
import { createSlice } from "@reduxjs/toolkit";
const initialState = [];
const contactsSlice = createSlice({
name: `contacts`,
initialState,
reducers: {
setContacts(state, action) {
console.log("set Contacts store", state);
const contacts = action.payload || [];
return contacts;
},
updateUsersStatus(state, action) {
const onlines = action.payload;
onlines.forEach((item) => {
const { uid, online = false } = item;
const curr = state.find(({ uid: id }) => id == uid);
console.log("update user status", curr, online);
if (curr) {
curr.online = online;
}
});
},
},
});
export const { setContacts, updateUsersStatus } = contactsSlice.actions;
export default contactsSlice.reducer;