File size: 788 Bytes
a0fda44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import { createSlice } from "@reduxjs/toolkit";

const contactsSlice = createSlice({
  name: "contactsSlice",
  initialState: [],
  reducers: {
    setContacts: (state, { payload: contacts }) => contacts,
    addContact: (state, { payload: contact }) => {
      state.push(contact);
    },
    removeContact: (state, { payload }) => {
      return state.filter(
        (contact) => contact.contactDetails._id !== payload.id
      );
    },
    setContactOnlineStatus: (state, { payload }) => {
      const contactIndex = state.findIndex(
        (contact) => contact.contactDetails._id === payload.id
      );

      state[contactIndex].contactDetails.status = payload.status;
    },
  },
});

export const contactsActions = contactsSlice.actions;

export default contactsSlice.reducer;