diff --git a/src/store/modules/channelModule.js b/src/store/modules/channelModule.js index 880a35f..db46c2a 100644 --- a/src/store/modules/channelModule.js +++ b/src/store/modules/channelModule.js @@ -48,7 +48,8 @@ const mutations = { Vue.set(state.channels[channelID], "lastMessaged", Date.now()); }, addAllChannels(state, channels) { - Vue.set(state, "channels", channels); + const test = Object.assign(state.channels, channels); + Vue.set(state, "channels", test); }, channel(state, channel) { Vue.set(state.channels, channel.channelID, channel); diff --git a/src/store/modules/serversModule.js b/src/store/modules/serversModule.js index 79f167a..0cbbc76 100644 --- a/src/store/modules/serversModule.js +++ b/src/store/modules/serversModule.js @@ -33,7 +33,9 @@ const actions = { const mutations = { SET_CHANNELS_IDS(state, {serverID, channelsIDs}) { - Vue.set(state.channelsIDs, serverID, channelsIDs); + const previousChannels = state.channelsIDs[serverID] || [] + Vue.set(state.channelsIDs, serverID, [...previousChannels, ...channelsIDs]); + }, SET_SERVERS(state, servers) { state.servers = servers; diff --git a/src/store/modules/socketIOModule.js b/src/store/modules/socketIOModule.js index 5a4f8c6..5b680c8 100644 --- a/src/store/modules/socketIOModule.js +++ b/src/store/modules/socketIOModule.js @@ -39,6 +39,20 @@ const actions = { let servers = user.servers || []; //convert array to object for servers servers = servers.reduce((obj, item) => { + item.channels.forEach(element => { + element.server = undefined + element._id = undefined; + element.__v = undefined; + element.server_id = item.server_id + console.log(element) + + context.dispatch('channel', element) + context.dispatch("servers/setChannelsIDs", { + serverID: item.server_id, + channelsIDs: [element.channelID] + }); + }); + item.channels = undefined; obj[item.server_id] = item return obj }, {})