From d228b149e1863fae306962b53b98df0e4ddc1761 Mon Sep 17 00:00:00 2001 From: vinayak-trivedi Date: Mon, 30 Dec 2024 23:29:37 +0530 Subject: [PATCH 01/50] changes to show website option --- .../dashboard/routes/dashboard/settings/inbox/ChannelList.vue | 2 +- .../routes/dashboard/settings/inbox/channel-factory.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/ChannelList.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/ChannelList.vue index 7ed171242df80..7191d19b9eb2c 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/ChannelList.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/ChannelList.vue @@ -51,7 +51,7 @@ export default { channelList() { // const { apiChannelName, apiChannelThumbnail } = this.globalConfig; return [ - // { key: 'website', name: 'Website' }, + { key: 'website', name: 'Website' }, { key: 'facebook', name: 'Messenger' }, // { key: 'twitter', name: 'Twitter' }, // { key: 'whatsapp', name: 'WhatsApp' }, diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/channel-factory.js b/app/javascript/dashboard/routes/dashboard/settings/inbox/channel-factory.js index cd3eab42138b8..de6a5d6555edf 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/channel-factory.js +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/channel-factory.js @@ -1,5 +1,5 @@ import Facebook from './channels/Facebook'; -// import Website from './channels/Website'; +import Website from './channels/Website'; // import Twitter from './channels/Twitter'; // import Api from './channels/Api'; import Email from './channels/Email'; @@ -10,7 +10,7 @@ import Email from './channels/Email'; const channelViewList = { facebook: Facebook, - // website: Website, + website: Website, // twitter: Twitter, // api: Api, email: Email, From 571b4406167e055c9cd7e9df6eca461a6839315d Mon Sep 17 00:00:00 2001 From: vinayak-trivedi Date: Tue, 31 Dec 2024 00:23:15 +0530 Subject: [PATCH 02/50] track order initial component --- .../dashboard/assets/images/delivery_icon.svg | 4 ++ .../widget-preview/components/Widget.vue | 4 +- .../widget-preview/components/WidgetHead.vue | 56 +++++++++++++++++-- .../shared/assets/stylesheets/colors.scss | 2 + .../shared/assets/stylesheets/spacing.scss | 1 + 5 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 app/javascript/dashboard/assets/images/delivery_icon.svg diff --git a/app/javascript/dashboard/assets/images/delivery_icon.svg b/app/javascript/dashboard/assets/images/delivery_icon.svg new file mode 100644 index 0000000000000..10fd22e5ad88b --- /dev/null +++ b/app/javascript/dashboard/assets/images/delivery_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/app/javascript/dashboard/modules/widget-preview/components/Widget.vue b/app/javascript/dashboard/modules/widget-preview/components/Widget.vue index a083cc522a0f1..d5f47526b1ea4 100644 --- a/app/javascript/dashboard/modules/widget-preview/components/Widget.vue +++ b/app/javascript/dashboard/modules/widget-preview/components/Widget.vue @@ -212,8 +212,8 @@ export default { box-shadow: var(--shadow-widget-builder); border-radius: var(--border-radius-large); background-color: #f4f6fb; - width: calc(var(--space-large) * 10); - height: calc(var(--space-mega) * 5); + width: calc(var(--space-large) * 10.5); + height: calc(var(--space-mega) * 6); .branding { padding-top: var(--space-one); diff --git a/app/javascript/dashboard/modules/widget-preview/components/WidgetHead.vue b/app/javascript/dashboard/modules/widget-preview/components/WidgetHead.vue index 775e3e0ea0d61..3b26842d20e69 100644 --- a/app/javascript/dashboard/modules/widget-preview/components/WidgetHead.vue +++ b/app/javascript/dashboard/modules/widget-preview/components/WidgetHead.vue @@ -1,10 +1,10 @@ From 2204c7436e0ca4dc128827e2702f5292310abdb5 Mon Sep 17 00:00:00 2001 From: vinayak-trivedi Date: Thu, 2 Jan 2025 20:28:11 +0530 Subject: [PATCH 28/50] product carousel logic completed --- .../shared/components/ProductCarousel.vue | 67 ++++++++++++++++++- .../widget/components/AgentMessage.vue | 2 + .../widget/components/AgentMessageBubble.vue | 2 + .../widget/components/ConversationWrap.vue | 17 +++-- 4 files changed, 78 insertions(+), 10 deletions(-) diff --git a/app/javascript/shared/components/ProductCarousel.vue b/app/javascript/shared/components/ProductCarousel.vue index 7ec89b443d060..e2df6475dce18 100644 --- a/app/javascript/shared/components/ProductCarousel.vue +++ b/app/javascript/shared/components/ProductCarousel.vue @@ -11,7 +11,7 @@

{{ item.title }}

₹{{ item.price }}

- - +
+ + {{ getQuantity(item.id) }} + +
+ +
@@ -60,6 +66,22 @@ export default { this.currentSlide++; } }, + isProductInSelectedProducts(product) { + return this.selectedProducts.some(selectedProduct => selectedProduct.id === product.id); + }, + increaseQuantity(productId) { + const product = this.selectedProducts.find(selectedProduct => selectedProduct.id === productId); + this.updateSelectedProducts(productId, product.quantity + 1); + }, + decreaseQuantity(productId) { + const product = this.selectedProducts.find(selectedProduct => selectedProduct.id === productId); + this.updateSelectedProducts(productId, product.quantity - 1); + }, + getQuantity(productId) { + const product = this.selectedProducts.find(selectedProduct => selectedProduct.id === productId); + console.log(product, 'product'); + return product ? +product.quantity : 0; + }, prevSlide() { if (this.currentSlide > 0) { this.currentSlide--; @@ -135,6 +157,45 @@ h1 { margin-bottom: 15px; } +.quantity-container { + display: flex; + width: 70%; + align-items: center; +} + +.quantity-button { + background: #f0f0f0; + width: 28px; + height: 28px; + border-radius: 4px; + display: grid; + place-items: center; + width: 33%; +} + +.quantity-text { + font-size: 12px; + font-weight: 500; + color: #fff; + width: 34%; + background: #1F93FF; + height: 28px; + display: flex; + align-items: center; + justify-content: center; +} + +.clear-button { + background: red; + width: 20%; + height: 28px; + border-radius: 4px; + color: #fff; + font-size: 14px; + font-weight: 600; + +} + .card-buttons { display: flex; justify-content: space-between; @@ -153,7 +214,7 @@ h1 { .buy-now-button { background: #1f93ff; - width: 73px; + width: 85px; height: 28px; border-radius: 4px; color: #fff; diff --git a/app/javascript/widget/components/AgentMessage.vue b/app/javascript/widget/components/AgentMessage.vue index 8c5f0fcb9684d..dc79cbe4f31c0 100755 --- a/app/javascript/widget/components/AgentMessage.vue +++ b/app/javascript/widget/components/AgentMessage.vue @@ -27,6 +27,8 @@ :message-id="message.id" :message-type="messageType" :message="message.content" + :selected-products="selectedProducts" + :update-selected-products="updateSelectedProducts" />
-
+
- +
From dfbeece71715babb1fa196ddff96f2da42af0a80 Mon Sep 17 00:00:00 2001 From: vinayak-trivedi Date: Thu, 2 Jan 2025 23:26:09 +0530 Subject: [PATCH 31/50] completed cart functionality --- .../shared/components/ProductCarousel.vue | 21 ++++++---- .../widget/components/ConversationWrap.vue | 42 +++++++++++++++---- 2 files changed, 46 insertions(+), 17 deletions(-) diff --git a/app/javascript/shared/components/ProductCarousel.vue b/app/javascript/shared/components/ProductCarousel.vue index d610520c7dbae..72321cc42183f 100644 --- a/app/javascript/shared/components/ProductCarousel.vue +++ b/app/javascript/shared/components/ProductCarousel.vue @@ -6,12 +6,12 @@ :style="{ transform: `translateX(-${currentSlide * 100}%)` }" >