Skip to content

Commit 1dc3e75

Browse files
committed
(feat) add event on room header click
1 parent 8dfa88b commit 1dc3e75

File tree

4 files changed

+36
-11
lines changed

4 files changed

+36
-11
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,7 @@ messages="[
412412
| messageActionHandler (3) | `{ roomId, action, message }` | A user clicks on the dropdown icon inside a message |
413413
| sendMessageReaction | `{ roomId, messageId, reaction, remove }` | A user clicks on the emoji icon inside a message |
414414
| typingMessage | `{ message, roomId }` | A user is typing a message |
415+
| roomInfo | - | A user has clicked the room header bar |
415416

416417
(1) `fetchMessages` is triggered every time a room is opened. If the room is opened for the first time, the `options` param will hold `reset: true`
417418

src/ChatWindow/ChatWindow.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@
3535
:showRoomsList="showRoomsList"
3636
:isMobile="isMobile"
3737
:loadingRooms="loadingRooms"
38+
:roomInfo="$listeners.roomInfo"
3839
@toggleRoomsList="toggleRoomsList"
40+
@roomInfo="roomInfo"
3941
@fetchMessages="fetchMessages"
4042
@sendMessage="sendMessage"
4143
@editMessage="editMessage"
@@ -194,6 +196,9 @@ export default {
194196
this.fetchMessages({ reset: true })
195197
if (this.isMobile) this.showRoomsList = false
196198
},
199+
roomInfo() {
200+
this.$emit('roomInfo')
201+
},
197202
addRoom() {
198203
this.$emit('addRoom')
199204
},

src/ChatWindow/Room.vue

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,24 @@
1111
<svg-icon name="toggle" />
1212
</div>
1313
<div
14-
v-if="room.avatar"
15-
class="room-avatar"
16-
:style="{ 'background-image': `url('${room.avatar}')` }"
17-
></div>
18-
<div>
19-
<div class="room-name" v-html="room.roomName"></div>
14+
class="info-wrapper"
15+
:class="{ 'item-clickable': roomInfo }"
16+
@click="$emit('roomInfo')"
17+
>
2018
<div
21-
v-if="typingUsers"
22-
class="room-info"
23-
v-html="typingUsers + ' ' + textMessages.IS_TYPING"
19+
v-if="room.avatar"
20+
class="room-avatar"
21+
:style="{ 'background-image': `url('${room.avatar}')` }"
2422
></div>
25-
<div v-else class="room-info" v-html="userStatus"></div>
23+
<div>
24+
<div class="room-name" v-html="room.roomName"></div>
25+
<div
26+
v-if="typingUsers"
27+
class="room-info"
28+
v-html="typingUsers + ' ' + textMessages.IS_TYPING"
29+
></div>
30+
<div v-else class="room-info" v-html="userStatus"></div>
31+
</div>
2632
</div>
2733
<div
2834
class="svg-button room-options"
@@ -264,7 +270,8 @@ export default {
264270
showFiles: { type: Boolean, required: true },
265271
showEmojis: { type: Boolean, required: true },
266272
showReactionEmojis: { type: Boolean, required: true },
267-
loadingRooms: { type: Boolean, required: true }
273+
loadingRooms: { type: Boolean, required: true },
274+
roomInfo: { type: Function }
268275
},
269276
270277
data() {
@@ -614,10 +621,18 @@ export default {
614621
.room-wrapper {
615622
display: flex;
616623
align-items: center;
624+
height: 100%;
617625
width: 100%;
618626
padding: 0 16px;
619627
}
620628
629+
.info-wrapper {
630+
width: 100%;
631+
height: 100%;
632+
display: flex;
633+
align-items: center;
634+
}
635+
621636
.toggle-button {
622637
margin-right: 15px;
623638

src/styles/helper.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
border-bottom: var(--chat-border-style);
1515
}
1616

17+
.item-clickable {
18+
cursor: pointer;
19+
}
20+
1721
.vertical-center {
1822
display: flex;
1923
align-items: center;

0 commit comments

Comments
 (0)