Skip to content

Commit c81638e

Browse files
committed
(feat) add failure message icon
1 parent edbe8f2 commit c81638e

File tree

6 files changed

+56
-2
lines changed

6 files changed

+56
-2
lines changed

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,7 @@ Message states:
525525
- `distributed: true` two checkmarks
526526
- `seen: true` two blue checkmarks
527527
- `deleted: true` grey background with deleted message text
528+
- `failure: true` red clickable failure icon
528529

529530
```javascript
530531
messages="[
@@ -542,6 +543,7 @@ messages="[
542543
distributed: true,
543544
seen: true,
544545
deleted: false,
546+
failure: true,
545547
disableActions: false,
546548
disableReactions: false,
547549
files: [
@@ -597,6 +599,7 @@ messages="[
597599
| `delete-message` | `{ roomId, message }` | Deleted a message |
598600
| `open-file` | `{ message, file }` | Clicked to view or download a file |
599601
| `open-user-tag`(3) | `{ user }` | Clicked on a user tag inside a message |
602+
| `open-failed-message` | `{ roomId, message }` | Clicked on the failure icon next to a message |
600603
| `add-room` | - | Clicked on the plus icon next to searchbar |
601604
| `room-action-handler`(4) | `{ roomId, action }` | Clicked on the vertical dots icon inside a room |
602605
| `menu-action-handler`(5) | `{ roomId, action }` | Clicked on the vertical dots icon inside a room |
@@ -605,7 +608,7 @@ messages="[
605608
| `room-info` (7) | `room` | Clicked the room header bar |
606609
| `toggle-rooms-list` | `{ opened }` | Clicked on the toggle icon inside a room header |
607610
| `textarea-action-handler`(8) | `{ roomId, message }` | Clicked on custom icon inside the footer |
608-
| `typing-message` | `{ message, roomId }` | Started typing a message |
611+
| `typing-message` | `{ roomId, message }` | Started typing a message |
609612

610613
**(1)** `fetch-messages` is triggered every time a room is opened. If the room is opened for the first time, the `options` param will hold `reset: true`.<br>
611614
**(1)** `fetch-messages` should be a method implementing a pagination system. Its purpose is to load older messages of a conversation when the user scroll on top.

src/lib/ChatWindow.vue

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
@delete-message="deleteMessage"
7070
@open-file="openFile"
7171
@open-user-tag="openUserTag"
72+
@open-failed-message="openFailedMessage"
7273
@menu-action-handler="menuActionHandler"
7374
@message-action-handler="messageActionHandler"
7475
@send-message-reaction="sendMessageReaction"
@@ -174,6 +175,7 @@ export default {
174175
'delete-message',
175176
'open-file',
176177
'open-user-tag',
178+
'open-failed-message',
177179
'menu-action-handler',
178180
'message-action-handler',
179181
'send-message-reaction',
@@ -336,6 +338,12 @@ export default {
336338
openUserTag({ user }) {
337339
this.$emit('open-user-tag', { user })
338340
},
341+
openFailedMessage({ message }) {
342+
this.$emit('open-failed-message', {
343+
message,
344+
roomId: this.room.roomId
345+
})
346+
},
339347
menuActionHandler(ev) {
340348
this.$emit('menu-action-handler', {
341349
action: ev,

src/lib/Message/Message.scss

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,26 @@
6868
align-self: flex-end;
6969
}
7070

71+
.vac-failure-container {
72+
position: relative;
73+
align-self: flex-end;
74+
height: 20px;
75+
width: 20px;
76+
margin: 0 0 2px -4px;
77+
border-radius: 50%;
78+
background-color: #f44336;
79+
80+
.vac-failure-text {
81+
position: absolute;
82+
top: 50%;
83+
left: 50%;
84+
transform: translate(-50%, -50%);
85+
color: white;
86+
font-size: 15px;
87+
font-weight: bold;
88+
}
89+
}
90+
7191
.vac-message-container {
7292
position: relative;
7393
padding: 2px 10px;
@@ -213,6 +233,10 @@
213233
}
214234
}
215235

236+
.vac-failure-container {
237+
margin-left: 2px;
238+
}
239+
216240
.vac-offset-current {
217241
margin-left: 20%;
218242
}

src/lib/Message/Message.vue

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,17 @@
179179
class="vac-avatar vac-avatar-current"
180180
:style="{ 'background-image': `url('${message.avatar}')` }"
181181
/>
182+
<slot name="message-failure" v-bind="{ message }">
183+
<div
184+
v-if="message.failure && message.senderId === currentUserId"
185+
class="vac-failure-container vac-svg-button"
186+
@click="$emit('open-failed-message', { message })"
187+
>
188+
<div class="vac-failure-text">
189+
!
190+
</div>
191+
</div>
192+
</slot>
182193
</slot>
183194
</div>
184195
</div>
@@ -232,6 +243,7 @@ export default {
232243
'message-added',
233244
'open-file',
234245
'open-user-tag',
246+
'open-failed-message',
235247
'message-action-handler',
236248
'send-message-reaction'
237249
],

src/lib/Room/Room.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
@message-action-handler="messageActionHandler"
8787
@open-file="openFile"
8888
@open-user-tag="openUserTag"
89+
@open-failed-message="$emit('open-failed-message', $event)"
8990
@send-message-reaction="sendMessageReaction"
9091
@hide-options="hideOptions = $event"
9192
>
@@ -398,6 +399,7 @@ export default {
398399
'typing-message',
399400
'open-file',
400401
'open-user-tag',
402+
'open-failed-message',
401403
'textarea-action-handler'
402404
],
403405

types/index.d.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,24 @@ export interface MessageReactions {
5858

5959
export interface Message {
6060
_id: StringNumber
61+
indexId?: StringNumber
6162
content: string
6263
senderId: StringNumber
64+
username?: string
65+
avayar?: string
6366
date: string
6467
timestamp: string
65-
username?: string
6668
system?: boolean
6769
saved?: boolean
6870
distributed?: boolean
6971
seen?: boolean
72+
deleted?: boolean
73+
failure?: boolean
7074
disableActions?: boolean
7175
disableReactions?: boolean
7276
files?: MessageFile[]
7377
reactions?: MessageReactions
78+
replyMessage?: Message
7479
}
7580

7681
export type Messages = Message[]

0 commit comments

Comments
 (0)