Skip to content

Commit 6f1946b

Browse files
Merge pull request #20 from mctekk/feat/clickable-header
Add days
2 parents 17f5471 + 0f5f8be commit 6f1946b

File tree

6 files changed

+196
-112
lines changed

6 files changed

+196
-112
lines changed

src/App.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<div id="app" style="height: 98vh">
33
<twilio-chat
44
v-if="leadId && token"
5+
token-field="channel_client_token"
56
:endpoint="`${endpoint}chats`"
67
:show-header="false"
78
:show-channel-list="false"

src/components/chat/index.vue

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -68,99 +68,100 @@ export default {
6868
ChatMessager,
6969
ChatSide,
7070
ChatLogin,
71-
ChatLoading
71+
ChatLoading,
7272
},
7373
props: {
7474
tokenField: {
7575
type: String,
76-
default: "channel_owner_token"
76+
default: "channel_owner_token",
7777
},
7878
displayFull: {
7979
type: Boolean,
80-
default: false
80+
default: false,
8181
},
8282
endpoint: {
8383
type: String,
84-
required: true
84+
required: true,
8585
},
8686
receiver: {
87-
type: String
87+
type: String,
8888
},
8989
showHeader: {
9090
type: Boolean,
91-
default: true
91+
default: true,
9292
},
9393
showChannelList: {
9494
type: Boolean,
95-
default: false
95+
default: false,
9696
},
9797
showSuggestButton: {
9898
type: Boolean,
99-
default: true
99+
default: true,
100100
},
101101
httpOptions: {
102102
type: Object,
103103
default() {
104104
return {};
105-
}
105+
},
106106
},
107107
httpMethod: {
108-
type: Function
108+
type: Function,
109109
},
110110
isExpanded: {
111111
type: Boolean,
112-
default: false
112+
default: false,
113113
},
114114
externalChannelHandle: {
115115
type: Boolean,
116-
default: false
116+
default: false,
117117
},
118118
user: {
119119
type: String,
120-
default: ""
121-
}
120+
default: "",
121+
},
122122
},
123123
data() {
124124
return {
125125
client: null,
126126
channels: [],
127127
activeChannel: null,
128-
userContext: { identity: null }
128+
userContext: { identity: null },
129129
};
130130
},
131131
watch: {
132132
receiver() {
133133
this.unlistenEvents();
134-
}
134+
},
135135
},
136136
computed: {
137137
isLoggedIn() {
138138
return this.userContext.identity;
139-
}
139+
},
140140
},
141141
beforeDestroy() {
142142
this.unlistenEvents();
143143
},
144144
methods: {
145-
async createClient(data) {
146-
const client = await Twilio.Client.create(data[this.tokenField], {
147-
logLevel: "info"
148-
});
149-
this.userContext = {
150-
...data,
151-
identity: client.user.identity,
152-
user: client.user
153-
};
154-
this.client = client;
145+
createClient(data) {
146+
Twilio.Client.create(data[this.tokenField], {
147+
logLevel: "info",
148+
}).then((client) => {
149+
this.userContext = {
150+
...data,
151+
identity: client.user.identity,
152+
user: client.user,
153+
};
154+
this.client = client;
155155
156-
client.on("tokenAboutToExpire", this.onTokenAboutToExpire);
157-
this.loadChannelEvents(client);
158-
this.updateChannels();
156+
client.on("tokenAboutToExpire", this.onTokenAboutToExpire);
157+
this.loadChannelEvents(client);
158+
this.updateChannels();
159+
});
159160
},
160161
161162
async loadChannel() {
162163
if (!this.activeChannel && !this.showChannelList) {
163-
const channel = this.channels.find(channel => {
164+
const channel = this.channels.find((channel) => {
164165
return channel.sid == this.userContext.channel_sid;
165166
});
166167
@@ -194,7 +195,7 @@ export default {
194195
195196
const subscribed = await this.client
196197
.getSubscribedChannels({ limit: 100 })
197-
.then(page => {
198+
.then((page) => {
198199
return this.appendChannels(page, []);
199200
});
200201
this.channels = subscribed;
@@ -216,7 +217,7 @@ export default {
216217
},
217218
218219
loadChannelEvents(client) {
219-
client.on("channelJoined", channel => {
220+
client.on("channelJoined", (channel) => {
220221
channel.on("messageAdded", () => {
221222
this.updateChannels();
222223
});
@@ -232,7 +233,7 @@ export default {
232233
233234
unlistenEvents() {
234235
if (this.client) {
235-
this.client.removeListener("channelJoined", channel => {
236+
this.client.removeListener("channelJoined", (channel) => {
236237
channel.removeListener("messageAdded", () => {
237238
this.updateChannels();
238239
});
@@ -269,8 +270,8 @@ export default {
269270
270271
sendMessage(message, attributes) {
271272
this.$refs.messenger.sendMessage(message, attributes);
272-
}
273-
}
273+
},
274+
},
274275
};
275276
</script>
276277

src/components/chat/messager.vue

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,23 @@ export default {
196196
},
197197
198198
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+
}
199206
if (message.trim()) {
200207
this.channel.sendMessage(message, attributes);
208+
this.clearMessageForm()
209+
}
210+
},
211+
212+
clearMessageForm() {
201213
setTimeout(() => {
202214
this.formData.message = "";
203215
});
204-
}
205216
},
206217
207218
listenTyping(e) {
@@ -240,9 +251,7 @@ export default {
240251
}
241252
this.channel.on("messageAdded", this.addMessage);
242253
this.channel.on("memberUpdated", this.updateMembers);
243-
setTimeout(() => {
244-
this.isLoading = false;
245-
}, 300);
254+
this.isLoading = false;
246255
});
247256
248257
this.channel.on("typingStarted", member => {

0 commit comments

Comments
 (0)