diff --git a/lex-web-ui/README.md b/lex-web-ui/README.md index b1f0f639..c05ead33 100644 --- a/lex-web-ui/README.md +++ b/lex-web-ui/README.md @@ -682,7 +682,7 @@ For detailed explanation on how things work, checkout the npm install # serve with hot reload at localhost:8080 -npm run dev +npm start # build for production with minification npm run build diff --git a/lex-web-ui/src/components/Message.vue b/lex-web-ui/src/components/Message.vue index 2ba17361..ef01d555 100644 --- a/lex-web-ui/src/components/Message.vue +++ b/lex-web-ui/src/components/Message.vue @@ -30,38 +30,62 @@ v-if="'text' in message && message.text !== null && message.text.length && !shouldDisplayInteractiveMessage" >
+ v-if="shouldDisplayInteractiveMessage && interactiveMessage?.templateType == 'ListPicker'">
- -
{{message.interactiveMessage.data.content.title}}
- {{message.interactiveMessage.data.content.subtitle}} + +
{{interactiveMessage.data.content.title}}
+ {{interactiveMessage?.data.content.subtitle}}
- - +
+
+ + + +
+ +
{{item.title}}
+ {{item.subtitle}} +
+
+ + + + + + +
+
+
+ v-if="shouldDisplayInteractiveMessage && interactiveMessage?.templateType == 'TimePicker'">
-
{{message.interactiveMessage.data.content.title}}
- {{message.interactiveMessage.data.content.subtitle}} +
{{interactiveMessage?.data.content.title}}
+ {{interactiveMessage?.data.content.subtitle}}
-
+
- a.date.localeCompare(b.date)); + if (this.interactiveMessage?.templateType == 'TimePicker') { + var sortedslots = this.interactiveMessage.data.content.timeslots.sort((a, b) => a.date.localeCompare(b.date)); const dateFormatOptions = { weekday: 'long', month: 'long', day: 'numeric' }; const timeFormatOptions = { hour: "numeric", minute: "numeric", timeZoneName: "short" }; const localeId = localStorage.getItem('selectedLocale') ? localStorage.getItem('selectedLocale') : this.$store.state.config.lex.v2BotLocaleId.split(',')[0]; @@ -367,12 +392,12 @@ export default { } }, quickReplyResponseCard() { - if (this.message.interactiveMessage?.templateType == 'QuickReply') { + if (this.interactiveMessage?.templateType == 'QuickReply') { //Create a response card format so we can leverage existing ResponseCard display template var responseCard = { buttons: [] }; - this.message.interactiveMessage.data.content.elements.forEach(function (button, index) { + this.interactiveMessage.data.content.elements.forEach(function (button, index) { responseCard.buttons.push({ text: button.title, value: button.title