@ozdao/martyrs 0.2.427 → 0.2.429
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/martyrs/src/components/Block/Block.vue.cjs +1 -1
- package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
- package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
- package/dist/martyrs/src/components/Popup/{Popup.vue.cjs → Popup.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Popup/{Popup.vue.js → Popup.vue2.js} +2 -2
- package/dist/martyrs/src/components/Popup/{Popup.vue.cjs.map → Popup.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.cjs → SelectMulti.vue.cjs} +2 -2
- package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js.map → SelectMulti.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js → SelectMulti.vue.js} +2 -2
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +1 -0
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.cjs → Tooltip.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js.map → Tooltip.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js → Tooltip.vue.js} +2 -2
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
- package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.cjs +13 -3
- package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.js +14 -4
- package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs +24 -6
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +25 -7
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs +7 -8
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.js +7 -8
- package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs +6 -8
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js +6 -8
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs +5 -5
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +5 -5
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +3 -3
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +3 -3
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +7 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +7 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +201 -93
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +214 -106
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +8 -11
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +9 -12
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +99 -99
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +102 -102
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +14 -8
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +15 -9
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/orders.cjs +51 -0
- package/dist/martyrs/src/modules/orders/store/orders.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/orders.js +51 -0
- package/dist/martyrs/src/modules/orders/store/orders.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +16 -13
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +16 -13
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/store/spots.cjs +11 -4
- package/dist/martyrs/src/modules/spots/store/spots.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/store/spots.js +11 -4
- package/dist/martyrs/src/modules/spots/store/spots.js.map +1 -1
- package/dist/orders.server.js +6 -0
- package/dist/orders.server.mjs +6 -0
- package/dist/spots.server.js +44 -3
- package/dist/spots.server.mjs +44 -3
- package/dist/style.css +20 -20
- package/package.json +1 -1
- package/src/modules/chats/components/pages/ChatPage.vue +18 -23
- package/src/modules/chats/components/sections/ChatWindow.vue +55 -38
- package/src/modules/chats/store/chat.store.js +20 -21
- package/src/modules/globals/views/classes/globals.websocket.js +10 -11
- package/src/modules/landing/components/sections/Examples.vue +1 -1
- package/src/modules/landing/components/sections/HowToBuyWDR.vue +3 -3
- package/src/modules/landing/components/sections/SectionEarn.vue +4 -4
- package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
- package/src/modules/landing/components/sections/SectionFeatures.vue +1 -1
- package/src/modules/landing/components/sections/SectionFeaturesImages.vue +1 -1
- package/src/modules/landing/components/sections/SectionFocus.vue +1 -1
- package/src/modules/landing/components/sections/SectionHeroVideo.vue +3 -3
- package/src/modules/landing/components/sections/SectionMobileApp.vue +3 -3
- package/src/modules/landing/components/sections/SectionOverview.vue +1 -1
- package/src/modules/landing/components/sections/SectionRoadmap.vue +1 -1
- package/src/modules/landing/components/sections/WhatIsWDRSection.vue +3 -3
- package/src/modules/marketplace/views/components/sections/SectionMenu.vue +3 -3
- package/src/modules/notifications/components/elements/NotificationBadge.vue +7 -0
- package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -2
- package/src/modules/orders/components/pages/OrderBackoffice.vue +146 -77
- package/src/modules/orders/components/pages/OrderCreate.vue +5 -10
- package/src/modules/orders/components/sections/FormDelivery.vue +35 -43
- package/src/modules/orders/components/sections/FormPayment.vue +17 -7
- package/src/modules/orders/controllers/orders.controller.js +10 -0
- package/src/modules/orders/store/orders.js +65 -0
- package/src/modules/products/components/sections/PopularProducts.vue +4 -1
- package/src/modules/spots/components/blocks/CardSpot.vue +8 -7
- package/src/modules/spots/controllers/spots.controller.js +49 -2
- package/src/modules/spots/routes/spots.routes.js +3 -1
- package/src/modules/spots/store/spots.js +12 -4
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +0 -1
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs.map +0 -1
|
@@ -1,40 +1,34 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="bg-white radius-semi bg-white o-hidden pos-relative">
|
|
3
|
-
|
|
4
|
-
<div
|
|
5
|
-
<
|
|
6
|
-
<
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
</div>
|
|
3
|
+
<div ref="allMessages" class="chat-messages o-scroll h-max-20r">
|
|
4
|
+
<div class="pos-relative h-min-20r flex-justify-end flex flex-column br-b br-solid br-black-transp-10">
|
|
5
|
+
<transition name="scaleIn" mode="out-in">
|
|
6
|
+
<div v-if="messages.length < 1" class="flex-center pd-small t-center w-100 h-100 flex-column flex pos-absolute">
|
|
7
|
+
<PlaceholderChat class="radius-100 mn-b-thin"/>
|
|
8
|
+
<h4 class='mn-b-thin'>Here you can view your chat history</h4>
|
|
9
|
+
<p>Feel free to ask if you have any questions.</p>
|
|
10
|
+
</div>
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
</transition>
|
|
22
|
-
|
|
23
|
-
</div>
|
|
12
|
+
<TransitionGroup v-else name="list" tag="ul" class="w-100 o-hidden" @after-enter="scrollToBottom">
|
|
13
|
+
<ChatMessage
|
|
14
|
+
v-for="message in messages"
|
|
15
|
+
:key="message._id"
|
|
16
|
+
:message="message"
|
|
17
|
+
/>
|
|
18
|
+
</TransitionGroup>
|
|
19
|
+
</transition>
|
|
24
20
|
</div>
|
|
21
|
+
</div>
|
|
25
22
|
|
|
26
|
-
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/>
|
|
31
|
-
<input class="" placeholder="Enter your message" type="text" v-model="newMessage" @keyup.enter="sendMessage" />
|
|
32
|
-
</div>
|
|
23
|
+
<div class="flex-nowrap flex-v-center flex bg-white w-100 radius-big pd-small">
|
|
24
|
+
<IconAdd class="mn-r-thin t-transp i-regular" />
|
|
25
|
+
<input class="" placeholder="Enter your message" type="text" v-model="newMessage" @keyup.enter="sendMessage" />
|
|
26
|
+
</div>
|
|
33
27
|
</div>
|
|
34
28
|
</template>
|
|
35
29
|
|
|
36
30
|
<script setup>
|
|
37
|
-
import { ref, computed, watch } from 'vue';
|
|
31
|
+
import { ref, computed, watch, onMounted, nextTick } from 'vue';
|
|
38
32
|
|
|
39
33
|
import IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue'
|
|
40
34
|
import PlaceholderChat from '@martyrs/src/modules/icons/placeholders/PlaceholderChat.vue'
|
|
@@ -43,13 +37,20 @@ import ChatMessage from '../blocks/ChatMessage.vue';
|
|
|
43
37
|
import chatStore from '../../store/chat.store.js';
|
|
44
38
|
|
|
45
39
|
const newMessage = ref('');
|
|
46
|
-
const allMessages = ref(null)
|
|
40
|
+
const allMessages = ref(null);
|
|
47
41
|
|
|
48
42
|
// Вычисляемые свойства
|
|
49
43
|
const messages = computed(() => chatStore.state.messages);
|
|
50
44
|
|
|
45
|
+
// Функция прокрутки вниз
|
|
46
|
+
const scrollToBottom = () => {
|
|
47
|
+
if (allMessages.value) {
|
|
48
|
+
allMessages.value.scrollTop = allMessages.value.scrollHeight;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
51
52
|
// Функция для отправки сообщения
|
|
52
|
-
const sendMessage = () => {
|
|
53
|
+
const sendMessage = async () => {
|
|
53
54
|
if (newMessage.value) {
|
|
54
55
|
const message = {
|
|
55
56
|
text: newMessage.value,
|
|
@@ -58,18 +59,34 @@ const sendMessage = () => {
|
|
|
58
59
|
};
|
|
59
60
|
|
|
60
61
|
chatStore.methods.addMessage(message);
|
|
61
|
-
console.log(allMessages.value.lastElementChild.offsetHeight)
|
|
62
|
-
allMessages.value.scrollTop = allMessages.value.lastElementChild.offsetHeight
|
|
63
|
-
|
|
64
62
|
newMessage.value = '';
|
|
63
|
+
|
|
64
|
+
// Ждем, пока все анимации и рендеринг завершатся
|
|
65
|
+
await nextTick();
|
|
66
|
+
await new Promise(resolve => setTimeout(resolve, 100)); // Небольшая задержка для анимаций
|
|
67
|
+
scrollToBottom();
|
|
65
68
|
}
|
|
66
69
|
};
|
|
67
70
|
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
// Прокрутка вниз при монтировании
|
|
72
|
+
onMounted(() => {
|
|
73
|
+
nextTick(() => {
|
|
74
|
+
if (allMessages.value) {
|
|
75
|
+
allMessages.value.scrollTop = allMessages.value.scrollHeight;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
// Прокрутка вниз при изменении сообщений
|
|
81
|
+
watch(messages, () => {
|
|
82
|
+
nextTick(() => {
|
|
83
|
+
if (allMessages.value) {
|
|
84
|
+
allMessages.value.scrollTop = allMessages.value.scrollHeight;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}, { deep: true });
|
|
72
88
|
|
|
89
|
+
// Обработчик после завершения анимации входа нового элемента
|
|
73
90
|
</script>
|
|
74
91
|
|
|
75
92
|
<style>
|
|
@@ -82,4 +99,4 @@ watch(chatStore.state.messages, () => {
|
|
|
82
99
|
opacity: 0;
|
|
83
100
|
transform: translateX(30px);
|
|
84
101
|
}
|
|
85
|
-
</style>
|
|
102
|
+
</style>
|
|
@@ -8,41 +8,38 @@ const state = reactive({
|
|
|
8
8
|
});
|
|
9
9
|
|
|
10
10
|
const methods = {
|
|
11
|
-
async connectWebSocket() {
|
|
12
|
-
console.log('process env')
|
|
13
|
-
console.log(process.env.WSS_URL)
|
|
14
|
-
|
|
11
|
+
async connectWebSocket(user) {
|
|
15
12
|
// Use the global WebSocket instance
|
|
16
13
|
try {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
//
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
console.log('connect', user);
|
|
15
|
+
await globalWebSocket.connect(user);
|
|
16
|
+
|
|
17
|
+
// Remove any existing 'message' listeners for the 'chat' module to avoid duplicates
|
|
18
|
+
globalWebSocket.removeModuleListeners('chat');
|
|
19
|
+
|
|
23
20
|
// Register chat message event listener
|
|
24
|
-
globalWebSocket.addEventListener('message', (data) => {
|
|
21
|
+
const listenerId = globalWebSocket.addEventListener('message', (data) => {
|
|
25
22
|
if (data.chatId === state.currentChatId) {
|
|
26
23
|
state.messages.push(data);
|
|
27
24
|
}
|
|
28
25
|
}, { module: 'chat' });
|
|
29
|
-
|
|
26
|
+
|
|
30
27
|
return globalWebSocket;
|
|
31
28
|
} catch (error) {
|
|
32
29
|
console.error('Failed to connect to WebSocket:', error);
|
|
33
30
|
throw error;
|
|
34
31
|
}
|
|
35
32
|
},
|
|
36
|
-
|
|
33
|
+
|
|
37
34
|
setMessages(messages) {
|
|
38
|
-
console.log(process.env.API_URL)
|
|
35
|
+
console.log(process.env.API_URL);
|
|
39
36
|
state.messages = messages;
|
|
40
37
|
},
|
|
41
|
-
|
|
42
|
-
addMessage(message) {
|
|
43
|
-
globalWebSocket.send(message);
|
|
38
|
+
|
|
39
|
+
async addMessage(message) {
|
|
40
|
+
await globalWebSocket.send(message);
|
|
44
41
|
},
|
|
45
|
-
|
|
42
|
+
|
|
46
43
|
async setCurrentChat(chatId) {
|
|
47
44
|
state.currentChatId = chatId;
|
|
48
45
|
state.messages = []; // Clear current messages when changing chat
|
|
@@ -56,14 +53,16 @@ const methods = {
|
|
|
56
53
|
|
|
57
54
|
methods.setMessages(messages);
|
|
58
55
|
},
|
|
59
|
-
|
|
56
|
+
|
|
60
57
|
setUsername(username) {
|
|
61
58
|
state.username = username;
|
|
62
59
|
},
|
|
63
|
-
|
|
60
|
+
|
|
64
61
|
disconnectChat() {
|
|
65
|
-
// Remove chat-specific listeners when leaving chat page
|
|
62
|
+
// Remove all chat-specific listeners when leaving chat page
|
|
66
63
|
globalWebSocket.removeModuleListeners('chat');
|
|
64
|
+
// Optionally disconnect the WebSocket if no longer needed
|
|
65
|
+
// globalWebSocket.disconnect(); // Uncomment if you want to fully disconnect
|
|
67
66
|
}
|
|
68
67
|
};
|
|
69
68
|
|
|
@@ -54,25 +54,24 @@ class GlobalWebSocket {
|
|
|
54
54
|
return Promise.resolve(false);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
//
|
|
58
|
-
if (this.isConnected && this.userId === userId && this.socket) {
|
|
59
|
-
return Promise.resolve(this.socket);
|
|
60
|
-
}
|
|
61
|
-
|
|
57
|
+
// Always update userId before any connection logic
|
|
62
58
|
this.userId = userId;
|
|
63
59
|
|
|
64
|
-
// If
|
|
65
|
-
if (this.
|
|
66
|
-
return this.
|
|
60
|
+
// If already connected with the same user and socket is valid, return the existing connection
|
|
61
|
+
if (this.isConnected && this.socket && this.socket.readyState === WebSocket.OPEN) {
|
|
62
|
+
return Promise.resolve(this.socket);
|
|
67
63
|
}
|
|
68
64
|
|
|
65
|
+
// Clear any existing connection promise to avoid conflicts
|
|
66
|
+
this.connectPromise = null;
|
|
67
|
+
|
|
69
68
|
// Create new connection promise
|
|
70
69
|
this.connectPromise = new Promise((resolve, reject) => {
|
|
71
70
|
// Close existing connection if any
|
|
72
71
|
this.disconnect();
|
|
73
72
|
|
|
74
73
|
// Create new WebSocket connection with user ID
|
|
75
|
-
const wsUrl = userId ? `${this.baseUrl}?userId=${userId}` : this.baseUrl;
|
|
74
|
+
const wsUrl = userId ? `${this.baseUrl}?userId=${encodeURIComponent(userId)}` : this.baseUrl;
|
|
76
75
|
this.socket = new WebSocket(wsUrl);
|
|
77
76
|
|
|
78
77
|
// Setup event handlers
|
|
@@ -142,7 +141,7 @@ class GlobalWebSocket {
|
|
|
142
141
|
* @param {Object|String} data - Data to send
|
|
143
142
|
* @returns {Boolean} Success status
|
|
144
143
|
*/
|
|
145
|
-
send(data) {
|
|
144
|
+
async send(data) {
|
|
146
145
|
if (!this.socket || this.socket.readyState !== WebSocket.OPEN) {
|
|
147
146
|
console.error('Cannot send message: WebSocket is not connected');
|
|
148
147
|
return false;
|
|
@@ -150,7 +149,7 @@ class GlobalWebSocket {
|
|
|
150
149
|
|
|
151
150
|
try {
|
|
152
151
|
const message = typeof data === 'string' ? data : JSON.stringify(data);
|
|
153
|
-
this.socket.send(message);
|
|
152
|
+
await this.socket.send(message);
|
|
154
153
|
return true;
|
|
155
154
|
} catch (error) {
|
|
156
155
|
console.error('Error sending WebSocket message:', error);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<h2 class="mn-center text-fade-in"><span class="text-splitted">Example of the Strains</span></h2>
|
|
5
5
|
</header>
|
|
6
6
|
<div class="cols-4 w-100 o-scroll pos-relative gap-medium">
|
|
7
|
-
<img loading="lazy" v-for="(signal,index) in signals" class="radius-
|
|
7
|
+
<img loading="lazy" v-for="(signal,index) in signals" class="radius-medium h-max-30r signal" :src="'/images/examples/' + signal">
|
|
8
8
|
</div>
|
|
9
9
|
</section>
|
|
10
10
|
</template>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section id="howtoget" class="cols-2 gap-thin">
|
|
3
|
-
<div class="pd-big bg-main radius-
|
|
3
|
+
<div class="pd-big bg-main radius-medium">
|
|
4
4
|
<h2 class="mn-b-small">{{ t('buyTokenTitle') }}</h2>
|
|
5
5
|
<p class="mn-b-semi p-big t-transp">{{ t('description') }}</p>
|
|
6
6
|
<h3 class="mn-b-small">{{ t('purchaseDetailsTitle') }}</h3>
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
{{ t('privateRoundText2') }}
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
|
-
<div class="flex-column pd-big flex-nowrap flex h-100 bg-light radius-
|
|
22
|
+
<div class="flex-column pd-big flex-nowrap flex h-100 bg-light radius-medium o-hidden coming-soon">
|
|
23
23
|
<div class="
|
|
24
24
|
w-100 h-100
|
|
25
25
|
rainbow
|
|
26
26
|
flex-v-center flex-h-center
|
|
27
27
|
flex-column flex
|
|
28
28
|
pd-big mn-b-medium
|
|
29
|
-
radius-
|
|
29
|
+
radius-medium o-hidden"
|
|
30
30
|
>
|
|
31
31
|
<img loading="lazy" class="mn-b-small" src="/logo/logo-disabled.png">
|
|
32
32
|
<p class="t-semi uppercase">{{ t('comingSoon') }}</p>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section class="cols-2 gap-thin">
|
|
3
3
|
<div class="pos-relative flex flex-column flex-center h-100">
|
|
4
|
-
<div class="mn-b-thin pd-big radius-
|
|
4
|
+
<div class="mn-b-thin pd-big radius-medium">
|
|
5
5
|
<img v-if="te('logo')" loading="lazy" class="mn-b-semi h-4r" :src="t('logo')">
|
|
6
6
|
|
|
7
7
|
<h2 v-if="te('title')" class="mn-b-medium" v-html="t('title')"/>
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
<p v-if="te('subdescription')" class="mn-b-semi p-medium t-transp">{{ t('subdescription')}}</p>
|
|
10
10
|
|
|
11
11
|
<div class="gap-thin cols-2">
|
|
12
|
-
<router-link :to="t('action_link')" class="flex t-center bg-white flex-center flex-column t-black pd-big radius-
|
|
12
|
+
<router-link :to="t('action_link')" class="flex t-center bg-white flex-center flex-column t-black pd-big radius-medium">
|
|
13
13
|
<IconInfo class="mn-b-small i-extra" fill="rgb(var(--black)"/>
|
|
14
14
|
<p class="uppercase t-semi">{{t('action')}}</p>
|
|
15
15
|
</router-link>
|
|
16
16
|
|
|
17
|
-
<router-link :to="t('action_sublink') " class="flex t-center flex-center flex-column bg-main t-black pd-big radius-
|
|
17
|
+
<router-link :to="t('action_sublink') " class="flex t-center flex-center flex-column bg-main t-black pd-big radius-medium">
|
|
18
18
|
<IconEarn class="mn-b-small i-extra" fill="rgb(var(--black)"/>
|
|
19
19
|
<p class="uppercase t-semi">{{t('subaction')}}</p>
|
|
20
20
|
</router-link>
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
</div>
|
|
26
26
|
|
|
27
|
-
<div class="pos-relative pd-medium flex-column flex-center flex h-100 bg-main radius-
|
|
27
|
+
<div class="pos-relative pd-medium flex-column flex-center flex h-100 bg-main radius-medium o-hidden">
|
|
28
28
|
<img v-if="te('image')" loading="lazy" :src="t('image')" class="mn-t-auto z-index-1 w-75 mn-b-auto">
|
|
29
29
|
<ConnectMetamask
|
|
30
30
|
:tokenAddress="options.tokenAddress"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="o-hidden bg-light pos-relative radius-
|
|
2
|
+
<div class="o-hidden bg-light pos-relative radius-medium cols-2">
|
|
3
3
|
<div style="min-height: 20rem;" :class="{'order-2':order}" class="pos-relative w-100 h-100 bg-light">
|
|
4
4
|
<img loading="lazy" class="w-100 h-100 object-fit-cover pos-absolute" :src="image">
|
|
5
5
|
</div>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<div
|
|
14
14
|
v-for="feature in tm('features')"
|
|
15
15
|
:key="feature.title"
|
|
16
|
-
class="w-100 pd-medium bg-light radius-
|
|
16
|
+
class="w-100 pd-medium bg-light radius-medium"
|
|
17
17
|
>
|
|
18
18
|
<img loading="lazy"
|
|
19
19
|
class="radius-medium bg-light h-max-20r object-fit-cover w-100 mn-b-medium"
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<div class="col-1 flex-justify flex-column flex o-hidden" itemprop="description">
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
<div class="pd-big bg-main mn-b-thin radius-
|
|
9
|
+
<div class="pd-big bg-main mn-b-thin radius-medium">
|
|
10
10
|
<h1 class="mn-b-small">
|
|
11
11
|
<span class="text-fade-in">
|
|
12
12
|
<span class="text-splitted" v-html="t('viewpoint.title')"/>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<p class="p-big t-transp">{{ t('viewpoint.description') }}</p>
|
|
17
17
|
</div>
|
|
18
18
|
|
|
19
|
-
<div class="pd-big bg-black t-white radius-
|
|
19
|
+
<div class="pd-big bg-black t-white radius-medium">
|
|
20
20
|
<p class="p-big mn-b-small" itemprop="name">{{ t('contacts.name') }}</p>
|
|
21
21
|
|
|
22
22
|
<address class="d-block mn-b-small" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
</div>
|
|
45
45
|
<!-- Right col -->
|
|
46
46
|
<div class="col-2 w-100 flex">
|
|
47
|
-
<div class="pos-relative radius-
|
|
47
|
+
<div class="pos-relative radius-medium video-wrapper w-100 h-100 o-hidden">
|
|
48
48
|
<div class="video-gradient"></div>
|
|
49
49
|
<video ref="videoElement" style="object-fit: cover; position: absolute;" class="video-height" preload autoplay muted loop playsinlineclass playsinline src="/videos/farming.mp4" itemprop="video" type="video/mp4" ></video>
|
|
50
50
|
</div>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<div class="z-index-1 h-100">
|
|
4
4
|
<img loading="lazy"
|
|
5
5
|
:src="(FILE_SERVER_URL || '') + t('image')"
|
|
6
|
-
class="radius-
|
|
6
|
+
class="radius-medium h-100 w-100 object-fit-cover"
|
|
7
7
|
>
|
|
8
8
|
</div>
|
|
9
9
|
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
>
|
|
28
28
|
<span
|
|
29
29
|
v-if="te('label')"
|
|
30
|
-
class="z-index-2 radius-
|
|
30
|
+
class="z-index-2 radius-medium bg-main t-semi uppercase pd-l-thin pd-r-thin pos-absolute pos-r-10-negative pos-t-10-negative"
|
|
31
31
|
>
|
|
32
32
|
{{ t('label') }}
|
|
33
33
|
</span>
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
>
|
|
43
43
|
<span
|
|
44
44
|
v-if="te('label')"
|
|
45
|
-
class="z-index-2 pd-l-thin pd-r-thin radius-
|
|
45
|
+
class="z-index-2 pd-l-thin pd-r-thin radius-medium bg-main t-semi uppercase pos-absolute pos-r-10-negative pos-t-10-negative"
|
|
46
46
|
>
|
|
47
47
|
{{ t('label') }}
|
|
48
48
|
</span>
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
v-for="section in tm('sections')"
|
|
10
10
|
:key="section.route"
|
|
11
11
|
:to="section.route"
|
|
12
|
-
class="cursor-pointer hover-scale-0 transition-ease-in pd-big bg-light t-black radius-
|
|
12
|
+
class="cursor-pointer hover-scale-0 transition-ease-in pd-big bg-light t-black radius-medium"
|
|
13
13
|
>
|
|
14
14
|
<img
|
|
15
15
|
loading="lazy"
|
|
@@ -41,7 +41,7 @@ const { t,tm } = useI18n(props.textData);
|
|
|
41
41
|
</script>
|
|
42
42
|
|
|
43
43
|
<template>
|
|
44
|
-
<div class="o-hidden bg-black t-white t-left pd-big radius-
|
|
44
|
+
<div class="o-hidden bg-black t-white t-left pd-big radius-medium">
|
|
45
45
|
<h2 class="mn-b-big t-center w-100">{{ t('title') }}</h2>
|
|
46
46
|
|
|
47
47
|
<div class="gap-thin flex-nowrap flex o-scrolled timeline custom-scroll">
|
|
@@ -10,19 +10,19 @@
|
|
|
10
10
|
|
|
11
11
|
<div class="cols-3 gap-thin">
|
|
12
12
|
|
|
13
|
-
<div class="w-100 pd-medium bg-light radius-
|
|
13
|
+
<div class="w-100 pd-medium bg-light radius-medium">
|
|
14
14
|
<img loading="lazy" class="radius-medium bg-light h-max-20r object-fit-cover w-100 mn-b-medium" src="@/assets/images/howitworks/step1.png">
|
|
15
15
|
<h3 class="mn-b-medium">{{t('steps.step1.headline')}}</h3>
|
|
16
16
|
<p class="t-transp">{{t('steps.step1.text')}}</p>
|
|
17
17
|
</div>
|
|
18
18
|
|
|
19
|
-
<div class="w-100 pd-medium bg-light radius-
|
|
19
|
+
<div class="w-100 pd-medium bg-light radius-medium">
|
|
20
20
|
<img loading="lazy" class="radius-medium bg-light h-max-20r object-fit-cover w-100 mn-b-medium" src="@/assets/images/howitworks/step2.png">
|
|
21
21
|
<h3 class="mn-b-medium">{{t('steps.step2.headline')}}</h3>
|
|
22
22
|
<p class="t-transp">{{t('steps.step2.text')}}</p>
|
|
23
23
|
</div>
|
|
24
24
|
|
|
25
|
-
<div class="w-100 pd-medium bg-light radius-
|
|
25
|
+
<div class="w-100 pd-medium bg-light radius-medium">
|
|
26
26
|
<img loading="lazy" class="radius-medium bg-light h-max-20r object-fit-cover w-100 mn-b-medium" src="@/assets/images/howitworks/step3.png">
|
|
27
27
|
<h3 class="mn-b-medium">{{t('steps.step3.headline')}}</h3>
|
|
28
28
|
<p class="t-transp">{{t('steps.step3.text')}}</p>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section id="main-menu" class="
|
|
2
|
+
<section id="main-menu" class="pos-relative">
|
|
3
3
|
<h2 class="w-m-60r mn-auto pd-t-big pd-b-big t-center">
|
|
4
4
|
Weed and Accessories to <br><b>Enhance Your Smoking Experience</b>
|
|
5
5
|
</h2>
|
|
6
6
|
|
|
7
7
|
<transition name="fade" mode="out-in" appear>
|
|
8
|
-
<div v-if="!menu" class="w-100 h-15r radius-
|
|
8
|
+
<div v-if="!menu" class="w-100 h-15r radius-medium flex-center bg-light">
|
|
9
9
|
<Loader class="pos-relative"/>
|
|
10
10
|
</div>
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<router-link :to="getMarketplaceLink([category.url])"
|
|
14
14
|
v-for="(category,index) in categoriesRoot.slice(0,5)"
|
|
15
15
|
:key="category"
|
|
16
|
-
class="cursor-pointer hover-scale-0 flex-v-center flex-h-center flex-nowrap flex-row flex bg-light radius-
|
|
16
|
+
class="cursor-pointer hover-scale-0 flex-v-center flex-h-center flex-nowrap flex-row flex bg-light radius-medium pd-medium grid-item"
|
|
17
17
|
>
|
|
18
18
|
|
|
19
19
|
<video
|
|
@@ -117,6 +117,13 @@ const handleClickOutside = (event) => {
|
|
|
117
117
|
// Lifecycle hooks
|
|
118
118
|
onMounted(() => {
|
|
119
119
|
document.addEventListener('click', handleClickOutside);
|
|
120
|
+
|
|
121
|
+
if (isOpen.value) {
|
|
122
|
+
const userId = auth.state.user._id;
|
|
123
|
+
if (userId) {
|
|
124
|
+
getNotifications(userId);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
120
127
|
});
|
|
121
128
|
|
|
122
129
|
onUnmounted(() => {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<div>
|
|
24
24
|
<p>
|
|
25
25
|
<span class="t-second mn-r-micro d-inline-block t-demi">
|
|
26
|
-
{{ product.price_currency || returnCurrency() }}{{ (product.listing === 'rent' ? (rentalDays || product.quantity ||
|
|
26
|
+
{{ product.price_currency || returnCurrency() }}{{ (product.listing === 'rent' ? (rentalDays || product.quantity || 0) : (product.quantity || 0)) * product.price }}
|
|
27
27
|
</span>
|
|
28
28
|
|
|
29
29
|
<span class="p-small t-transp">
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
</template>
|
|
35
35
|
|
|
36
36
|
<template v-else>
|
|
37
|
-
{{ product.quantity ||
|
|
37
|
+
{{ product.quantity || 0 }} {{ product.unit || 'pcs' }}
|
|
38
38
|
</template>
|
|
39
39
|
</span>
|
|
40
40
|
</p>
|