diff --git a/src/components/app/MessagePanel.vue b/src/components/app/MessagePanel.vue index b51d403..9191a31 100644 --- a/src/components/app/MessagePanel.vue +++ b/src/components/app/MessagePanel.vue @@ -20,6 +20,7 @@ :uniqueID="msg.creator.uniqueID" :avatar="msg.creator.avatar" :message="msg.message" + :embed="msg.embed" :files="msg.files" :status="msg.status" :type="msg.type" diff --git a/src/components/app/MessageTemplate.vue b/src/components/app/MessageTemplate.vue index 3c8667f..8b9483f 100644 --- a/src/components/app/MessageTemplate.vue +++ b/src/components/app/MessageTemplate.vue @@ -62,6 +62,7 @@ @click="imageClicked" > +
import ProfilePicture from "@/components/ProfilePictureTemplate.vue"; +import messageEmbedTemplate from "./messageEmbedTemplate"; import messageFormatter from "@/utils/messageFormatter.js"; import config from "@/config.js"; import friendlyDate from "@/utils/date"; @@ -103,7 +105,8 @@ import { mapState } from "vuex"; export default { components: { - ProfilePicture + ProfilePicture, + messageEmbedTemplate }, props: [ "message", @@ -114,7 +117,8 @@ export default { "uniqueID", "files", "admin", - "type" + "type", + "embed" ], methods: { openUserInformation() { @@ -126,12 +130,6 @@ export default { }, computed: { ...mapState("settingsModule", ["apperance"]), - getLinks(){ - const message = this.$props['message'] - if (!message) return []; - console.log(message.match(/(https?:\/\/[^\s]+)/g) || []) - return "LOL" - }, getImage() { if (!this.$props.files || this.$props.files.length === 0) return undefined; @@ -381,7 +379,7 @@ export default { + diff --git a/src/store/modules/messageModule.js b/src/store/modules/messageModule.js index e6ad869..bc79594 100644 --- a/src/store/modules/messageModule.js +++ b/src/store/modules/messageModule.js @@ -61,7 +61,6 @@ const actions = { }, - messages(context, data) { context.commit("messages", data); }, @@ -77,6 +76,17 @@ const actions = { }, replaceMessage(context, data) { context.commit("replaceMessage", data); + }, + updateMessage(context, {channelID, messageID, message}) { + console.log(message) + const messages = context.state.messages[channelID]; + messages.find((obj, index) => { + if (obj.messageID === messageID){ + const newObj = Object.assign({}, obj, message); + context.commit('updateMessage', {message: newObj, index}); + return true; + } + }) } }; @@ -101,6 +111,10 @@ async function getMessages(context, channelID, isServerChannel) { const mutations = { + updateMessage(state, {message, index}) { + console.log(message); + Vue.set(state.messages[message.channelID], index, message); + }, messages(state, data) { Vue.set(state.messages, data.channelID, data.messages); }, @@ -112,7 +126,6 @@ const mutations = { data.message ); }, - replaceMessage(state, data) { const { tempID, message } = data; diff --git a/src/store/modules/socketIOModule.js b/src/store/modules/socketIOModule.js index 6c1eb00..e5eee0e 100644 --- a/src/store/modules/socketIOModule.js +++ b/src/store/modules/socketIOModule.js @@ -266,11 +266,13 @@ const actions = { }, ['socket_server:removeChannel'](context, {server_id, channelID}) { context.dispatch('servers/removeServerChannel', {server_id, channelID}); - // context.dispatch('removeChannel', {channelID}); + }, ['socket_server:updateServer'](context, data) { context.dispatch('servers/updateServer', {server_id: data.server_id, server: data}); - // context.dispatch('removeChannel', {channelID}); + }, + ['socket_updateMessage'](context, data) { + context.dispatch('updateMessage', {channelID: data.channelID, messageID: data.messageID, message: data}); }, }