Skip to content

Commit 3d165b3

Browse files
Merge pull request #22 from mctekk/feat/clickable-header
Add visits instead of days
2 parents 9ebb1b8 + e170c09 commit 3d165b3

File tree

4 files changed

+99
-97
lines changed

4 files changed

+99
-97
lines changed

src/components/chat/messager.vue

Lines changed: 82 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
:is-sender="isSender(message)"
2727
:show-sender="channel.type == 'public'"
2828
:is-read="isRead(message)"
29-
:previous-message="index > 0 ? messages[index -1 ] : {}"
29+
:previous-message="index > 0 ? messages[index - 1] : {}"
3030
:members="members"
3131
:message="message"
3232
>
@@ -167,27 +167,31 @@ export default {
167167
},
168168
169169
updateMembers() {
170-
this.channel.getMembers().then(members => {
171-
this.members = members.map(member => {
172-
member.userAttributes = {};
173-
return member;
174-
});
175-
176-
members.map(member => {
177-
member.getUser().then(user => {
178-
const index = this.members.findIndex(localMember => localMember.identity.toLowerCase() == member.state.identity.toLowerCase())
179-
if (index >= 0) {
180-
const userAttributes = user.attributes;
181-
this.$set(this.members[index], 'userAttributes', userAttributes)
182-
}
183-
});
184-
})
170+
this.channel.getMembers().then(members => {
171+
this.members = members.map(member => {
172+
member.userAttributes = {};
173+
return member;
185174
});
175+
176+
members.map(member => {
177+
member.getUser().then(user => {
178+
const index = this.members.findIndex(
179+
localMember =>
180+
localMember.identity.toLowerCase() ==
181+
member.state.identity.toLowerCase()
182+
);
183+
if (index >= 0) {
184+
const userAttributes = user.attributes;
185+
this.$set(this.members[index], "userAttributes", userAttributes);
186+
}
187+
});
188+
});
189+
});
186190
},
187191
188192
async getDescription() {
189193
this.updateMembers();
190-
return await this.channel.getAttributes().then(attributes => {
194+
return await this.channel.getAttributes().then(attributes => {
191195
this.description = attributes.description;
192196
});
193197
},
@@ -196,23 +200,23 @@ export default {
196200
},
197201
198202
sendMessage(message, attributes = {}) {
199-
if (message.includes("/destroy")) {
200-
this.channel.delete().then(function(channel) {
201-
console.log('Deleted channel: ' + channel.sid);
202-
});;
203-
this.clearMessageForm()
204-
return
205-
}
203+
if (message.includes("/destroy")) {
204+
this.channel.delete().then(function(channel) {
205+
console.log("Deleted channel: " + channel.sid);
206+
});
207+
this.clearMessageForm();
208+
return;
209+
}
206210
if (message.trim()) {
207211
this.channel.sendMessage(message, attributes);
208-
this.clearMessageForm()
212+
this.clearMessageForm();
209213
}
210214
},
211215
212216
clearMessageForm() {
213-
setTimeout(() => {
214-
this.formData.message = "";
215-
});
217+
setTimeout(() => {
218+
this.formData.message = "";
219+
});
216220
},
217221
218222
listenTyping(e) {
@@ -226,12 +230,12 @@ export default {
226230
},
227231
228232
scrollToBottom(behavior) {
229-
this.$nextTick(() => {
233+
this.$nextTick(() => {
230234
const el = this.$refs.MessageContainer;
231-
if (el) {
232-
el.scrollTo({ top: el.scrollHeight, behavior });
233-
}
234-
})
235+
if (el) {
236+
el.scrollTo({ top: el.scrollHeight, behavior });
237+
}
238+
});
235239
},
236240
237241
removeActiveChannelListeners() {
@@ -242,6 +246,10 @@ export default {
242246
},
243247
244248
getMessages() {
249+
this.getMessagesFunc();
250+
},
251+
252+
getMessagesFunc() {
245253
this.channel.getMessages(30).then(page => {
246254
this.messages = page.items || [];
247255
this.scrollToBottom();
@@ -286,62 +294,61 @@ export default {
286294

287295
<style lang="scss">
288296
.message-list {
289-
position: relative;
290-
flex: 1 1 0;
291-
order: 2;
292-
293-
&__body {
294-
padding: 0.75rem 1.25rem;
295-
width: fit-content;
296-
border-radius: 1rem;
297-
border-top-left-radius: 0;
298-
width: 100%;
299-
}
297+
position: relative;
298+
flex: 1 1 0;
299+
order: 2;
300+
301+
&__body {
302+
padding: 0.75rem 1.25rem;
303+
width: fit-content;
304+
border-radius: 1rem;
305+
border-top-left-radius: 0;
306+
width: 100%;
307+
}
300308
301-
&__body.padding-0 {
302-
padding: 0 0 0 0;
303-
}
309+
&__body.padding-0 {
310+
padding: 0 0 0 0;
311+
}
304312
305-
&__item {
306-
margin: 15px;
307-
width: fit-content;
308-
padding: 0 1rem;
313+
&__item {
314+
margin: 15px;
315+
width: fit-content;
316+
padding: 0 1rem;
309317
310318
&.message-sender {
311-
right: 0;
312-
margin-left: auto;
313-
314-
.message-list__body {
315-
border-radius: 1rem;
316-
border-top-right-radius: 0;
317-
}
319+
right: 0;
320+
margin-left: auto;
318321
322+
.message-list__body {
323+
border-radius: 1rem;
324+
border-top-right-radius: 0;
325+
}
319326
}
320327
321328
a {
322-
color: #eee;
323-
text-decoration: underline;
329+
color: #eee;
330+
text-decoration: underline;
324331
}
325332
326333
.me {
327-
font-weight: bold;
328-
}
334+
font-weight: bold;
329335
}
336+
}
330337
331-
&__text {
332-
white-space: pre-wrap;
333-
}
338+
&__text {
339+
white-space: pre-wrap;
340+
}
334341
335-
.message-container {
336-
position: absolute;
337-
top: 0;
338-
z-index: 100;
339-
display: block;
340-
width: 100%;
341-
height: 100%;
342-
overflow-x: hidden;
343-
overflow-y: scroll;
344-
}
342+
.message-container {
343+
position: absolute;
344+
top: 0;
345+
z-index: 100;
346+
display: block;
347+
width: 100%;
348+
height: 100%;
349+
overflow-x: hidden;
350+
overflow-y: scroll;
351+
}
345352
}
346353
347354
.message-toolbar {

src/components/chat/profile-image.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ export default {
3535
border-radius: 50%;
3636
}
3737
38-
&::after {
38+
39+
40+
&.status-active::after {
3941
content: "";
4042
background: green;
4143
width: 14px;

src/components/chat/side-list-item.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
<i class="fas fa-history"></i>
1818
</div>
1919
<div class="title-indicators" v-else>
20-
<span> {{ daysActive() }} Days </span>
21-
<i class="fa fa-calendar"></i>
20+
<span> {{ visits() }} Visits </span>
2221
</div>
2322
</div>
2423

@@ -78,6 +77,7 @@ export default {
7877
if (this.channel.attributes && data.lead_id == this.channel.attributes.lead_id) {
7978
this.$set(this.channel.attributes, "chrono_start_date", data.chrono_start_date);
8079
this.$set(this.channel.attributes, "is_chrono_running", data.is_chrono_running)
80+
this.$set(this.channel.attributes, "visits", data.visits)
8181
this.watchTime();
8282
}
8383
});
@@ -176,8 +176,8 @@ export default {
176176
this.trackTime(this.channel.attributes);
177177
},
178178
179-
daysActive() {
180-
return Tracker.daysPassed(this.channel.attributes.lead_created_at || this.channel.dateCreated);
179+
visits() {
180+
return Number(this.channel.attributes.visits || this.channel.visitis || 0);
181181
},
182182
183183
trackTime(formData) {

src/components/chat/side.vue

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ export default {
166166
},
167167
methods: {
168168
updateMembers(channel) {
169-
channel.getMembers().then((members) => {
169+
channel.getMembers().then(members => {
170170
this.$set(this.channelData[channel.sid], "members", members);
171171
172172
members.map((member, index) => {
@@ -248,23 +248,16 @@ export default {
248248
async updateUnread(channel) {
249249
let unreadMessages = 0;
250250
const sender = await this.getSender(channel);
251-
const isDifferentChannel =
252-
!this.activeChannel || this.activeChannel.sid != channel.sid;
253-
if (
254-
this.channelData[channel.sid].lastMessage &&
255-
sender &&
256-
isDifferentChannel
257-
) {
258-
unreadMessages =
259-
this.channelData[channel.sid].lastMessage.index -
260-
sender.lastConsumedMessageIndex || 0;
251+
const isDifferentChannel = !this.activeChannel || this.activeChannel.sid != channel.sid;
252+
if ( this.channelData[channel.sid].lastMessage && sender && isDifferentChannel ) {
253+
// If the message doesnt come from him
254+
if (this.channelData[channel.sid].lastMessage.author !== sender.identity) {
255+
unreadMessages = this.channelData[channel.sid].lastMessage.index - sender.lastConsumedMessageIndex || 0;
256+
this.$set(this.channelData[channel.sid], "unreadMessages", unreadMessages);
257+
return unreadMessages;
258+
}
261259
}
262-
this.$set(
263-
this.channelData[channel.sid],
264-
"unreadMessages",
265-
unreadMessages
266-
);
267-
return unreadMessages;
260+
268261
},
269262
},
270263
};

0 commit comments

Comments
 (0)