@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.
Files changed (222) hide show
  1. package/dist/martyrs/src/components/Block/Block.vue.cjs +1 -1
  2. package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
  3. package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
  4. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
  5. package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
  6. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -0
  7. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
  8. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
  9. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  10. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  11. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
  12. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  13. package/dist/martyrs/src/components/Popup/{Popup.vue.cjs → Popup.vue2.cjs} +2 -2
  14. package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +1 -0
  15. package/dist/martyrs/src/components/Popup/{Popup.vue.js → Popup.vue2.js} +2 -2
  16. package/dist/martyrs/src/components/Popup/{Popup.vue.cjs.map → Popup.vue2.js.map} +1 -1
  17. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.cjs → SelectMulti.vue.cjs} +2 -2
  18. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js.map → SelectMulti.vue.cjs.map} +1 -1
  19. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js → SelectMulti.vue.js} +2 -2
  20. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +1 -0
  21. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.cjs → Tooltip.vue.cjs} +2 -2
  22. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js.map → Tooltip.vue.cjs.map} +1 -1
  23. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js → Tooltip.vue.js} +2 -2
  24. package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +1 -0
  25. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
  26. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  27. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
  28. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
  29. package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.cjs +13 -3
  30. package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.cjs.map +1 -1
  31. package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.js +14 -4
  32. package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.js.map +1 -1
  33. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs +24 -6
  34. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
  35. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +25 -7
  36. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  37. package/dist/martyrs/src/modules/chats/store/chat.store.cjs +7 -8
  38. package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
  39. package/dist/martyrs/src/modules/chats/store/chat.store.js +7 -8
  40. package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
  41. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  42. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  43. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
  44. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  45. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  46. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  47. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
  48. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +1 -1
  49. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  50. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  51. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
  52. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  53. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  54. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  55. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
  56. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  57. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
  58. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
  59. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +1 -1
  61. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
  62. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  63. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  64. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  65. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs +6 -8
  66. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs.map +1 -1
  67. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js +6 -8
  68. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js.map +1 -1
  69. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  70. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  71. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
  73. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
  74. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
  75. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  77. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs +5 -5
  78. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs.map +1 -1
  79. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +5 -5
  80. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
  81. package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.cjs +1 -1
  82. package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.cjs.map +1 -1
  83. package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.js +1 -1
  84. package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.js.map +1 -1
  85. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs +3 -3
  86. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs.map +1 -1
  87. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +3 -3
  88. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
  89. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.cjs +1 -1
  90. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.cjs.map +1 -1
  91. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js +1 -1
  92. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js.map +1 -1
  93. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +3 -3
  94. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs.map +1 -1
  95. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +3 -3
  96. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
  97. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +7 -1
  98. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
  99. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +7 -1
  100. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  101. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +2 -2
  102. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
  103. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +2 -2
  104. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  105. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +1 -1
  107. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +201 -93
  108. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +214 -106
  110. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +8 -11
  112. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  113. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +9 -12
  114. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  115. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
  116. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  117. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +99 -99
  118. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  119. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +102 -102
  120. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  121. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +14 -8
  122. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs.map +1 -1
  123. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +15 -9
  124. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/orders/store/orders.cjs +51 -0
  126. package/dist/martyrs/src/modules/orders/store/orders.cjs.map +1 -1
  127. package/dist/martyrs/src/modules/orders/store/orders.js +51 -0
  128. package/dist/martyrs/src/modules/orders/store/orders.js.map +1 -1
  129. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  131. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  132. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  133. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
  134. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
  135. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  136. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  137. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  138. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  139. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
  140. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
  141. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  142. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  143. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  144. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  145. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  146. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  147. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  148. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  149. package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
  150. package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
  151. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  153. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
  154. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
  155. package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
  156. package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
  157. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  159. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  160. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  161. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs +1 -1
  162. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs.map +1 -1
  163. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js +1 -1
  164. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js.map +1 -1
  165. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
  166. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -2
  167. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  168. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  169. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +16 -13
  170. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
  171. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +16 -13
  172. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  173. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  174. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  175. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
  176. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  177. package/dist/martyrs/src/modules/spots/store/spots.cjs +11 -4
  178. package/dist/martyrs/src/modules/spots/store/spots.cjs.map +1 -1
  179. package/dist/martyrs/src/modules/spots/store/spots.js +11 -4
  180. package/dist/martyrs/src/modules/spots/store/spots.js.map +1 -1
  181. package/dist/orders.server.js +6 -0
  182. package/dist/orders.server.mjs +6 -0
  183. package/dist/spots.server.js +44 -3
  184. package/dist/spots.server.mjs +44 -3
  185. package/dist/style.css +20 -20
  186. package/package.json +1 -1
  187. package/src/modules/chats/components/pages/ChatPage.vue +18 -23
  188. package/src/modules/chats/components/sections/ChatWindow.vue +55 -38
  189. package/src/modules/chats/store/chat.store.js +20 -21
  190. package/src/modules/globals/views/classes/globals.websocket.js +10 -11
  191. package/src/modules/landing/components/sections/Examples.vue +1 -1
  192. package/src/modules/landing/components/sections/HowToBuyWDR.vue +3 -3
  193. package/src/modules/landing/components/sections/SectionEarn.vue +4 -4
  194. package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
  195. package/src/modules/landing/components/sections/SectionFeatures.vue +1 -1
  196. package/src/modules/landing/components/sections/SectionFeaturesImages.vue +1 -1
  197. package/src/modules/landing/components/sections/SectionFocus.vue +1 -1
  198. package/src/modules/landing/components/sections/SectionHeroVideo.vue +3 -3
  199. package/src/modules/landing/components/sections/SectionMobileApp.vue +3 -3
  200. package/src/modules/landing/components/sections/SectionOverview.vue +1 -1
  201. package/src/modules/landing/components/sections/SectionRoadmap.vue +1 -1
  202. package/src/modules/landing/components/sections/WhatIsWDRSection.vue +3 -3
  203. package/src/modules/marketplace/views/components/sections/SectionMenu.vue +3 -3
  204. package/src/modules/notifications/components/elements/NotificationBadge.vue +7 -0
  205. package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -2
  206. package/src/modules/orders/components/pages/OrderBackoffice.vue +146 -77
  207. package/src/modules/orders/components/pages/OrderCreate.vue +5 -10
  208. package/src/modules/orders/components/sections/FormDelivery.vue +35 -43
  209. package/src/modules/orders/components/sections/FormPayment.vue +17 -7
  210. package/src/modules/orders/controllers/orders.controller.js +10 -0
  211. package/src/modules/orders/store/orders.js +65 -0
  212. package/src/modules/products/components/sections/PopularProducts.vue +4 -1
  213. package/src/modules/spots/components/blocks/CardSpot.vue +8 -7
  214. package/src/modules/spots/controllers/spots.controller.js +49 -2
  215. package/src/modules/spots/routes/spots.routes.js +3 -1
  216. package/src/modules/spots/store/spots.js +12 -4
  217. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
  218. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
  219. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
  220. package/dist/martyrs/src/components/Popup/Popup.vue.js.map +0 -1
  221. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.cjs.map +0 -1
  222. 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 ref="allMessages" class="chat-messages o-scroll h-max-20r">
5
- <div class="pos-relative h-min-20r flex-justify-end flex flex-column br-b br-solid br-black-transp-10">
6
- <transition name="scaleIn" mode="out-in">
7
- <div v-if="messages.length < 1" class="flex-center pd-small t-center w-100 h-100 flex-column flex pos-absolute">
8
- <PlaceholderChat class="radius-100 mn-b-thin"/>
9
- <h4 class='mn-b-thin'>Here you can view your chat history</h4>
10
- <p>Feel free to ask if you have any questions.</p>
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
- <TransitionGroup v-else name="list" tag="ul" class="w-100 o-hidden">
14
- <ChatMessage
15
- v-for="message in messages"
16
- :key="message._id"
17
- :message="message"
18
- />
19
-
20
- </TransitionGroup>
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
- <div class="flex-nowrap flex-v-center flex bg-white w-100 radius-big pd-small">
28
- <IconAdd
29
- class="mn-r-thin t-transp i-regular"
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
- watch(chatStore.state.messages, () => {
70
- allMessages.value.scrollTop = allMessages.value.lastElementChild.offsetHeight
71
- }, {deep: true});
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
- // Get userId from auth store or another source if available
18
- const userId = window.__user_id || null;
19
-
20
- // Connect to the global WebSocket
21
- await globalWebSocket.connect(userId);
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
- // If already connected with the same user, just return the existing connection
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 there's already a connection attempt in progress, return that promise
65
- if (this.connectPromise) {
66
- return this.connectPromise;
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-big h-max-30r signal" :src="'/images/examples/' + signal">
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-big">
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-big o-hidden coming-soon">
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-big o-hidden"
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-big">
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-big">
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-big">
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-big o-hidden">
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-big cols-2">
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>
@@ -6,7 +6,7 @@
6
6
  <div
7
7
  v-for="feature in tm('features')"
8
8
  :key="feature.title"
9
- class="pd-medium radius-big"
9
+ class="pd-medium radius-medium"
10
10
  >
11
11
  <p class="h2 i-extra radius-extra bg-main flex-center d-inline-flex mn-b-medium">
12
12
  {{ feature.icon }}
@@ -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-big"
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"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <section id="our-focus" class="bg-light radius-big pd-big cols-2 flex">
2
+ <section id="our-focus" class="bg-light radius-medium pd-big cols-2 flex">
3
3
 
4
4
  <div class="col">
5
5
 
@@ -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-big">
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-big">
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-big video-wrapper w-100 h-100 o-hidden">
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-big h-100 w-100 object-fit-cover"
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-big bg-main t-semi uppercase pd-l-thin pd-r-thin pos-absolute pos-r-10-negative pos-t-10-negative"
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-big bg-main t-semi uppercase pos-absolute pos-r-10-negative pos-t-10-negative"
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-big"
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-big">
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-big">
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-big">
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-big">
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="pd-thin pos-relative">
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-big flex-center bg-light">
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-big pd-medium grid-item"
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 || 1) : (product.quantity || 1)) * product.price }}
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 || 1 }} {{ product.unit || 'pcs' }}
37
+ {{ product.quantity || 0 }} {{ product.unit || 'pcs' }}
38
38
  </template>
39
39
  </span>
40
40
  </p>