|
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