|
25 | 25 | No rooms |
26 | 26 | </div> |
27 | 27 |
|
28 | | - <!-- :class="{ 'room-disabled': loadingMessages }" --> |
29 | 28 | <div v-if="!loadingRooms" class="room-list"> |
30 | 29 | <div |
31 | 30 | class="room-item" |
|
41 | 40 | ></div> |
42 | 41 | <div class="name-container"> |
43 | 42 | <div class="title-container"> |
44 | | - <div class="room-name">{{ room.roomName }}</div> |
| 43 | + <div |
| 44 | + class="state-circle" |
| 45 | + :class="{ 'state-online': userStatus(room) }" |
| 46 | + ></div> |
| 47 | + <div class="room-name"> |
| 48 | + {{ room.roomName }} |
| 49 | + </div> |
45 | 50 | <div class="room-name text-date" v-if="room.lastMessage"> |
46 | 51 | {{ room.lastMessage.timestamp }} |
47 | 52 | </div> |
@@ -73,6 +78,7 @@ export default { |
73 | 78 | components: { Loader, SvgIcon }, |
74 | 79 |
|
75 | 80 | props: { |
| 81 | + currentUserId: { type: [String, Number], required: true }, |
76 | 82 | textMessages: { type: Object, required: true }, |
77 | 83 | showRoomsList: { type: Boolean, required: true }, |
78 | 84 | showAddRoom: { type: Boolean, required: true }, |
@@ -111,6 +117,13 @@ export default { |
111 | 117 | }, |
112 | 118 | addRoom() { |
113 | 119 | this.$emit('addRoom') |
| 120 | + }, |
| 121 | + userStatus(room) { |
| 122 | + if (!room.users || room.users.length !== 2) return |
| 123 | +
|
| 124 | + const user = room.users.find(u => u._id !== this.currentUserId) |
| 125 | +
|
| 126 | + return user.status && user.status.state === 'online' |
114 | 127 | } |
115 | 128 | } |
116 | 129 | } |
@@ -266,15 +279,23 @@ input { |
266 | 279 | text-align: right; |
267 | 280 | } |
268 | 281 |
|
269 | | -.room-disabled { |
270 | | - pointer-events: none; |
271 | | -} |
272 | | -
|
273 | 282 | .icon-check { |
274 | 283 | height: 14px; |
275 | 284 | width: 14px; |
276 | 285 | vertical-align: middle; |
277 | 286 | margin-top: -2px; |
278 | 287 | margin-right: 1px; |
279 | 288 | } |
| 289 | +
|
| 290 | +.state-circle { |
| 291 | + width: 9px; |
| 292 | + height: 9px; |
| 293 | + border-radius: 50%; |
| 294 | + background-color: #ccc; |
| 295 | + margin-right: 6px; |
| 296 | +} |
| 297 | +
|
| 298 | +.state-online { |
| 299 | + background-color: #4caf50; |
| 300 | +} |
280 | 301 | </style> |
0 commit comments