From bca0de066002dad0e96a9aff6054d94c6cbd513c Mon Sep 17 00:00:00 2001 From: 10G Meow <10gmeow@gmail.com> Date: Wed, 30 Nov 2022 08:25:32 +0000 Subject: [PATCH] Poll reply fixes and other misc improvements --- src/assets/icons/poll.vue | 20 +++++++++++++++++++ src/assets/translations/bo.json | 1 + src/assets/translations/en.json | 1 + src/assets/translations/es.json | 1 + src/assets/translations/nb_NO.json | 1 + src/assets/translations/pt_BR.json | 1 + src/assets/translations/ro.json | 1 + src/assets/translations/si.json | 1 + src/assets/translations/ug.json | 1 + src/assets/translations/zh_Hans.json | 1 + src/components/Chat.vue | 6 ++++-- .../messages/MessageIncomingPoll.vue | 19 +----------------- .../messages/MessageOutgoingPoll.vue | 19 +----------------- src/plugins/utils.js | 4 +++- src/plugins/vuetify.js | 4 ++++ 15 files changed, 42 insertions(+), 39 deletions(-) create mode 100644 src/assets/icons/poll.vue diff --git a/src/assets/icons/poll.vue b/src/assets/icons/poll.vue new file mode 100644 index 0000000..e261cd1 --- /dev/null +++ b/src/assets/icons/poll.vue @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/src/assets/translations/bo.json b/src/assets/translations/bo.json index 540327d..9f51dbc 100644 --- a/src/assets/translations/bo.json +++ b/src/assets/translations/bo.json @@ -182,6 +182,7 @@ "reply_image": "", "reply_audio_message": "", "reply_video": "", + "reply_poll": "", "outgoing_message_deleted_text": "", "incoming_message_deleted_text": "" }, diff --git a/src/assets/translations/en.json b/src/assets/translations/en.json index ce97c04..6d516db 100644 --- a/src/assets/translations/en.json +++ b/src/assets/translations/en.json @@ -68,6 +68,7 @@ "reply_image": "Image", "reply_audio_message": "Audio message", "reply_video": "Video", + "reply_poll": "Poll", "time_ago": "Today | Yesterday | {count} days ago", "outgoing_message_deleted_text": "You deleted this message.", "incoming_message_deleted_text": "This message was deleted." diff --git a/src/assets/translations/es.json b/src/assets/translations/es.json index 68c1f30..ee06b1f 100644 --- a/src/assets/translations/es.json +++ b/src/assets/translations/es.json @@ -191,6 +191,7 @@ "reply_image": "Imagen", "reply_audio_message": "Mensaje de audio", "reply_video": "Vídeo", + "reply_poll": "", "user_changed_guest_access_closed": "{user} no has permitido que los invitados se unan a la sala", "user_changed_guest_access_open": "{user} has permitido que los invitados se unieran a la sala", "outgoing_message_deleted_text": "", diff --git a/src/assets/translations/nb_NO.json b/src/assets/translations/nb_NO.json index 7dc85b6..e2a1dd1 100644 --- a/src/assets/translations/nb_NO.json +++ b/src/assets/translations/nb_NO.json @@ -37,6 +37,7 @@ "reply_image": "", "reply_audio_message": "", "reply_video": "", + "reply_poll": "", "outgoing_message_deleted_text": "", "incoming_message_deleted_text": "" }, diff --git a/src/assets/translations/pt_BR.json b/src/assets/translations/pt_BR.json index ee9f623..56509ac 100644 --- a/src/assets/translations/pt_BR.json +++ b/src/assets/translations/pt_BR.json @@ -81,6 +81,7 @@ "reply_image": "Imagem", "reply_audio_message": "Mensagem de áudio", "reply_video": "Vídeo", + "reply_poll": "", "time_ago": "Hoje | Ontem | {count} dias atrás", "outgoing_message_deleted_text": "", "incoming_message_deleted_text": "" diff --git a/src/assets/translations/ro.json b/src/assets/translations/ro.json index 742c7b2..c13c893 100644 --- a/src/assets/translations/ro.json +++ b/src/assets/translations/ro.json @@ -237,6 +237,7 @@ "reply_image": "Imagine", "reply_audio_message": "Mesaj audio", "reply_video": "Videoclip", + "reply_poll": "", "outgoing_message_deleted_text": "", "incoming_message_deleted_text": "" }, diff --git a/src/assets/translations/si.json b/src/assets/translations/si.json index 4f7ff31..a1de79f 100644 --- a/src/assets/translations/si.json +++ b/src/assets/translations/si.json @@ -25,6 +25,7 @@ "reply_image": "", "reply_audio_message": "", "reply_video": "", + "reply_poll": "", "you": "ඔබ", "outgoing_message_deleted_text": "", "incoming_message_deleted_text": "" diff --git a/src/assets/translations/ug.json b/src/assets/translations/ug.json index 30f1811..7309460 100644 --- a/src/assets/translations/ug.json +++ b/src/assets/translations/ug.json @@ -68,6 +68,7 @@ "reply_image": "", "reply_audio_message": "", "reply_video": "", + "reply_poll": "", "outgoing_message_deleted_text": "", "incoming_message_deleted_text": "" }, diff --git a/src/assets/translations/zh_Hans.json b/src/assets/translations/zh_Hans.json index c2eeaa0..39d0bcc 100644 --- a/src/assets/translations/zh_Hans.json +++ b/src/assets/translations/zh_Hans.json @@ -118,6 +118,7 @@ "reply_image": "", "reply_audio_message": "", "reply_video": "", + "reply_poll": "", "outgoing_message_deleted_text": "", "incoming_message_deleted_text": "" }, diff --git a/src/components/Chat.vue b/src/components/Chat.vue index 2161ccc..43873e0 100644 --- a/src/components/Chat.vue +++ b/src/components/Chat.vue @@ -121,11 +121,13 @@
{{ $t("message.reply_image") }}
{{ $t("message.reply_audio_message") }}
{{ $t("message.reply_video") }}
+
{{ $t("message.reply_poll") }}
- + + $vuetify.icons.poll
@@ -1230,7 +1232,7 @@ export default { addReply(event) { this.replyToEvent = event; this.$refs.messageInput.focus(); - this.replyToContentType = event.getContent().msgtype; + this.replyToContentType = event.getContent().msgtype || 'm.poll'; this.setReplyToImage(event); }, diff --git a/src/components/messages/MessageIncomingPoll.vue b/src/components/messages/MessageIncomingPoll.vue index 8bb5166..3008f22 100644 --- a/src/components/messages/MessageIncomingPoll.vue +++ b/src/components/messages/MessageIncomingPoll.vue @@ -2,24 +2,7 @@
- - - - - - + $vuetify.icons.poll
{{ pollQuestion }}
diff --git a/src/components/messages/MessageOutgoingPoll.vue b/src/components/messages/MessageOutgoingPoll.vue index d3aaaf6..779c63e 100644 --- a/src/components/messages/MessageOutgoingPoll.vue +++ b/src/components/messages/MessageOutgoingPoll.vue @@ -2,24 +2,7 @@
- - - - - - + $vuetify.icons.poll
{{ pollQuestion }}
diff --git a/src/plugins/utils.js b/src/plugins/utils.js index 91d532f..a054390 100644 --- a/src/plugins/utils.js +++ b/src/plugins/utils.js @@ -163,9 +163,11 @@ class Util { event_id: replyToEvent.getId() } } + let senderContent = replyToEvent.getContent() + const senderContentBody = Object.getOwnPropertyDescriptor(senderContent,'body') ? senderContent.body : Object.values(senderContent)[0].question.body // Prefix the content with reply info (seems to be a legacy thing) - const prefix = replyToEvent.getContent().body.split('\n').map((item, index) => { + const prefix = senderContentBody.split('\n').map((item, index) => { return "> " + (index == 0 ? ("<" + replyToEvent.getSender() + "> ") : "") + item; }).join('\n'); content.body = prefix + "\n\n" + content.body; diff --git a/src/plugins/vuetify.js b/src/plugins/vuetify.js index 0eb52db..2614652 100644 --- a/src/plugins/vuetify.js +++ b/src/plugins/vuetify.js @@ -5,6 +5,7 @@ import icPassword from '@/assets/icons/password.vue'; import icEdit from '@/assets/icons/edit.vue'; import icGlobe from '@/assets/icons/globe.vue'; import icAddReaction from '@/assets/icons/addReaction.vue'; +import icPoll from '@/assets/icons/poll.vue'; Vue.use(Vuetify); @@ -27,6 +28,9 @@ export default new Vuetify({ addReaction: { component: icAddReaction }, + poll: { + component: icPoll + }, }, user: icUser },