frontend/src/slices/channelsSlice.js
import { createSlice, createEntityAdapter } from '@reduxjs/toolkit';
const channelsAdapter = createEntityAdapter();
const channelsSlice = createSlice({
name: 'channel',
initialState: channelsAdapter.getInitialState({
currentChannelId: null,
}),
reducers: {
addChannels: channelsAdapter.addMany,
addChannel: channelsAdapter.addOne,
removeChannel: (state, { payload }) => {
channelsAdapter.removeOne(state, payload);
if (state.currentChannelId === payload) {
// eslint-disable-next-line no-param-reassign
state.currentChannelId = 1;
}
},
updateChannel: channelsAdapter.updateOne,
setCurrentChannelId: (state, { payload }) => {
// eslint-disable-next-line no-param-reassign
state.currentChannelId = payload;
},
},
});
export const { actions } = channelsSlice;
export default channelsSlice.reducer;
export const selectors = channelsAdapter.getSelectors((state) => state.channels);