Skip to content

Commit c7662d9

Browse files
committed
prevent rendering modifying data
1 parent 1c50fc2 commit c7662d9

File tree

1 file changed

+13
-1
lines changed
  • frontend/src/components/app/matches

1 file changed

+13
-1
lines changed

frontend/src/components/app/matches/Chat.vue

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
'text-left': message.to_id === loggedInUserId,
1717
'text-right': message.to_id !== loggedInUserId}"
1818
v-for="(message, index) in messages" :key="index">
19-
<div v-if="displayDate(message.timestamp_ago)"
19+
<div v-if="message.first_in_timespan"
2020
v-bind:class="{'text-center': true, 'mx-auto': true, 'mt-8': index !== 0}">
2121
<h1
2222
class="text-xs font-light inline-block rounded-md bg-gray-200 px-2 py-1">{{message.timestamp_ago}}</h1>
@@ -50,6 +50,7 @@
5050
</template>
5151

5252
<script>
53+
/* eslint-disable no-param-reassign */
5354
import ChatUser from '@/components/app/matches/ChatUser.vue';
5455
5556
export default {
@@ -66,6 +67,16 @@ export default {
6667
latestMessagesDate: null,
6768
}),
6869
methods: {
70+
determineFirstMessagesOfTimespans(messages) {
71+
const len = messages.length;
72+
for (let i = 0; i < len; i += 1) {
73+
if (this.displayDate(messages[i].timestamp_ago)) {
74+
messages[i].first_in_timespan = true;
75+
} else {
76+
messages[i].first_in_timespan = false;
77+
}
78+
}
79+
},
6980
displayDate(messageAgo) {
7081
if (messageAgo !== this.latestMessagesDate) {
7182
this.latestMessagesDate = messageAgo;
@@ -111,6 +122,7 @@ export default {
111122
async prepareChatForNewUser() {
112123
const messagesRequest = await this.$http.get(`/conversations/${this.chatWithUserId}`);
113124
this.messages = messagesRequest.data.messages;
125+
this.determineFirstMessagesOfTimespans(this.messages);
114126
const userRequest = await this.$http.get(`/users/${this.chatWithUserId}`);
115127
this.user = userRequest.data;
116128
this.scrollChatToBottom();

0 commit comments

Comments
 (0)