From 7f801ccdbd0e2a9fd854b31854e534b0e160c8c1 Mon Sep 17 00:00:00 2001 From: supertiger1234 Date: Wed, 24 Jul 2019 13:55:09 +0100 Subject: [PATCH] fixed formatter --- src/components/app/EditPanel.vue | 74 +++++++++++++++ src/components/app/MessagePanel.vue | 91 +++++++++++++++++-- src/components/app/MessageTemplate.vue | 34 ++++--- src/components/app/MyMiniInformation.vue | 7 +- .../app/ServerTemplate/ChannelTemplate.vue | 10 +- src/components/app/messageEmbedTemplate.vue | 9 +- .../app/relationships/FriendsTemplate.vue | 9 +- .../app/relationships/RecentFriends.vue | 1 - src/components/app/uploadsQueue.vue | 8 +- src/services/messagesService.js | 3 + src/store/modules/channelModule.js | 9 +- .../modules/popoutsModule/popoutsModule.js | 9 +- src/store/modules/serversModule.js | 20 +++- src/store/modules/settingsModule.js | 10 +- src/store/modules/socketIOModule.js | 7 +- src/utils/changelog.js | 34 +++++++ src/utils/messageFormatter.js | 10 +- 17 files changed, 294 insertions(+), 51 deletions(-) create mode 100644 src/components/app/EditPanel.vue diff --git a/src/components/app/EditPanel.vue b/src/components/app/EditPanel.vue new file mode 100644 index 0000000..aa49fcd --- /dev/null +++ b/src/components/app/EditPanel.vue @@ -0,0 +1,74 @@ + + + + + + diff --git a/src/components/app/MessagePanel.vue b/src/components/app/MessagePanel.vue index a10f080..223e728 100644 --- a/src/components/app/MessagePanel.vue +++ b/src/components/app/MessagePanel.vue @@ -26,6 +26,7 @@ :messageID="msg.messageID" :channelID="msg.channelID" :type="msg.type" + :timeEdited="msg.timeEdited" /> @@ -40,6 +41,7 @@ +
@@ -62,9 +64,9 @@
@@ -98,6 +100,7 @@ import emojiParser from "@/utils/emojiParser.js"; import statuses from "@/utils/statuses"; const emojiPanel = () => import("@/components/app/EmojiPanels/emojiPanel.vue"); +const EditPanel = () => import("@/components/app/EditPanel.vue"); export default { components: { @@ -107,7 +110,8 @@ export default { uploadsQueue, emojiSuggestions, emojiPanel, - heading + heading, + EditPanel }, data() { return { @@ -187,9 +191,49 @@ export default { console.log(error); } }, + async updateMessage() { + const editMessage = this.editMessage; + this.$refs["input-box"].focus(); + this.message = this.message.trim(); + if (this.message === this.editMessage.message){ + this.$store.dispatch("setEditMessage", null); + this.message = ""; + return; + } + if (this.message == "") return; + if (this.message.length > 5000) return; + this.$store.dispatch("setEmojiArray", null); + clearInterval(this.postTimerID); + this.postTimerID = null; + this.messageLength = 0; + + const msg = emojiParser.replaceShortcode(this.message); + this.$store.dispatch('updateMessage', { + channelID: editMessage.channelID, + messageID: editMessage.messageID, + message: {message: msg, status: 0} + }) + this.$store.dispatch("setEditMessage", null); + this.message = ""; + + const {ok, error, result} = await messagesService.update(editMessage.messageID, editMessage.channelID, { + message: msg + }) + if (ok) { + this.$store.dispatch('updateMessage', { + channelID: editMessage.channelID, + messageID: editMessage.messageID, + message: {status: 1} + }) + } else { + this.$store.dispatch('updateMessage', { + channelID: editMessage.channelID, + messageID: editMessage.messageID, + message: {message: msg, status: 2} + }) + } + }, async postTimer() { - - this.postTimerID = setTimeout(async () => { if (this.message.trim() == "") { clearInterval(this.postTimerID); @@ -202,7 +246,6 @@ export default { this.postTimer() } }, 2000) - }, resize(event) { @@ -321,9 +364,26 @@ export default { this.enterEmojiSuggestion(); return; } - this.sendMessage(); + if (this.editMessage) { + return this.updateMessage() + } else { + this.sendMessage(); + } } } + if (event.keyCode === 38){ //38 = up arrow + if (this.message !== "") return; + if (this.editMessage) return; + const messagesFiltered = this.selectedChannelMessages.filter(m => m.creator.uniqueID === this.user.uniqueID); + if (!messagesFiltered.length) return; + event.preventDefault(); + const lastMessage = messagesFiltered[messagesFiltered.length - 1]; + this.$store.dispatch("setEditMessage", { + messageID: lastMessage.messageID, + channelID: lastMessage.channelID + }); + + } }, invertScroll(event) { if (event.deltaY) { @@ -451,6 +511,15 @@ export default { window.removeEventListener('focus', this.onFocus) delete this.$options.sockets.typingStatus; }, + watch: { + editMessage(editMessage) { + if (!editMessage) { + this.message = "" + } else { + this.message = editMessage.message + } + } + }, computed: { uploadQueue() { const allUploads = this.$store.getters.getAllUploads; @@ -507,6 +576,14 @@ export default { status = presences[channel.recipients[0].uniqueID] || 0; } return statuses[status].color; + }, + editMessage() { + let editMessage = this.$store.getters.popouts.editMessage; + if (!editMessage) return null; + editMessage = Object.assign({}, editMessage); + const messages = this.$store.getters.messages[editMessage.channelID]; + editMessage.message = messages.find(m => m.messageID === editMessage.messageID).message + return editMessage; } } }; diff --git a/src/components/app/MessageTemplate.vue b/src/components/app/MessageTemplate.vue index e95fe51..b6b30b0 100644 --- a/src/components/app/MessageTemplate.vue +++ b/src/components/app/MessageTemplate.vue @@ -1,5 +1,5 @@