From abe329c79005fd7a2bbf4c658f0300f2b4c380aa Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 18 Jun 2020 17:30:00 +0200 Subject: [PATCH 01/17] Add unread message marker in the chat view Signed-off-by: Joas Schilling --- .../MessagesGroup/Message/Message.vue | 266 ++++++++++-------- .../MessagesGroup/MessagesGroup.vue | 10 +- src/components/MessagesList/MessagesList.vue | 23 +- 3 files changed, 175 insertions(+), 124 deletions(-) diff --git a/src/components/MessagesList/MessagesGroup/Message/Message.vue b/src/components/MessagesList/MessagesGroup/Message/Message.vue index ffded0e6a76..c3de6042050 100644 --- a/src/components/MessagesList/MessagesGroup/Message/Message.vue +++ b/src/components/MessagesList/MessagesGroup/Message/Message.vue @@ -32,138 +32,144 @@ the main body of the message as well as a quote. :class="{'hover': showActions && !isSystemMessage && !isDeletedMessage, 'system' : isSystemMessage}" @mouseover="handleMouseover" @mouseleave="handleMouseleave"> -
- {{ actorDisplayName }} -
-
-
- -
- {{ message }} -
-
-
- - -
-
- +
+
+ {{ actorDisplayName }}
-
- - -
-
- {{ messageTime }} - -
- - +
+
+ +
+ {{ message }} +
-
-
- +
+ +
-
- +
+
- -
- - - {{ t('spreed', 'Reply') }} - - - - - {{ t('spreed', 'Reply privately') }} - - - {{ t('spreed', 'Copy message link') }} - - - - - + + + + +
+
+ {{ t('spreed', 'New messages') }} +
@@ -335,6 +341,14 @@ export default { type: String, default: '', }, + + /** + * Id of the last read message when the chat was opened + */ + lastReadMessage: { + type: Number, + default: 0, + }, }, data() { @@ -775,6 +789,18 @@ export default { 100% { background-color: rgba(var(--color-background-hover), 0); } } +.new-message-marker { + margin: 20px 0; + text-align: center; + + span { + background-color: var(--color-primary-light); + color: var(--color-text-lighter); + padding: 10px 20px; + border-radius: var(--border-radius); + } +} + .message-status { margin: -8px 0; width: $clickable-area; diff --git a/src/components/MessagesList/MessagesGroup/MessagesGroup.vue b/src/components/MessagesList/MessagesGroup/MessagesGroup.vue index 5702e735510..cc8be161bc4 100644 --- a/src/components/MessagesList/MessagesGroup/MessagesGroup.vue +++ b/src/components/MessagesList/MessagesGroup/MessagesGroup.vue @@ -45,7 +45,8 @@ :actor-id="actorId" :actor-display-name="actorDisplayName" :show-author="!isSystemMessage" - :is-temporary="message.timestamp === 0" /> + :is-temporary="message.timestamp === 0" + :last-read-message="lastReadMessage" />
@@ -86,6 +87,13 @@ export default { type: Array, required: true, }, + /** + * Id of the last read message when the chat was opened + */ + lastReadMessage: { + type: Number, + default: 0, + }, }, computed: { diff --git a/src/components/MessagesList/MessagesList.vue b/src/components/MessagesList/MessagesList.vue index 67e742f6f86..3df3b04f5b2 100644 --- a/src/components/MessagesList/MessagesList.vue +++ b/src/components/MessagesList/MessagesList.vue @@ -45,6 +45,7 @@ get the messagesList array and loop through the list to generate the messages. :style="{ height: item.height + 'px' }" v-bind="item" :messages="item" + :last-read-message="unreadMessageMarkerId" @deleteMessage="handleDeleteMessage" />