From fca8fa7f7ffa54ede4fdd5d8ca18e9b666a3a6da Mon Sep 17 00:00:00 2001 From: supertiger1234 Date: Wed, 29 May 2019 20:10:20 +0100 Subject: [PATCH] almost fixed the notification bug. --- src/store/modules/channelModule.js | 3 ++- src/store/modules/serversModule.js | 4 +++- src/store/modules/socketIOModule.js | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) 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 }, {})