@botonic/react 0.24.0-alpha.3 → 0.24.0-alpha.4

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 (338) hide show
  1. package/lib/cjs/components/index-types.d.ts +1 -0
  2. package/lib/cjs/components/index-types.js.map +1 -1
  3. package/lib/cjs/components/{message.js → message/index.js} +20 -65
  4. package/lib/cjs/components/message/index.js.map +1 -0
  5. package/lib/cjs/components/message/message-image.d.ts +7 -0
  6. package/lib/cjs/components/message/message-image.js +18 -0
  7. package/lib/cjs/components/message/message-image.js.map +1 -0
  8. package/lib/cjs/components/message/styles.d.ts +8 -0
  9. package/lib/cjs/components/message/styles.js +69 -0
  10. package/lib/cjs/components/message/styles.js.map +1 -0
  11. package/lib/cjs/components/{timestamps.d.ts → message/timestamps.d.ts} +2 -1
  12. package/lib/cjs/components/message/timestamps.js +36 -0
  13. package/lib/cjs/components/message/timestamps.js.map +1 -0
  14. package/lib/cjs/constants.d.ts +1 -0
  15. package/lib/cjs/constants.js +2 -0
  16. package/lib/cjs/constants.js.map +1 -1
  17. package/lib/cjs/webchat/trigger-button/index.js +3 -2
  18. package/lib/cjs/webchat/trigger-button/index.js.map +1 -1
  19. package/lib/esm/app.d.ts +2 -0
  20. package/lib/esm/app.js +6 -0
  21. package/lib/esm/app.js.map +1 -0
  22. package/lib/esm/assets/index-types.d.ts +4 -0
  23. package/lib/esm/assets/index-types.js +2 -0
  24. package/lib/esm/assets/index-types.js.map +1 -0
  25. package/lib/esm/botonic-tester.d.ts +18 -0
  26. package/lib/esm/botonic-tester.js +62 -0
  27. package/lib/esm/botonic-tester.js.map +1 -0
  28. package/lib/esm/components/audio.d.ts +8 -0
  29. package/lib/esm/components/audio.js +18 -0
  30. package/lib/esm/components/audio.js.map +1 -0
  31. package/lib/esm/components/button.d.ts +15 -0
  32. package/lib/esm/components/button.js +140 -0
  33. package/lib/esm/components/button.js.map +1 -0
  34. package/lib/esm/components/buttons-disabler.d.ts +24 -0
  35. package/lib/esm/components/buttons-disabler.js +84 -0
  36. package/lib/esm/components/buttons-disabler.js.map +1 -0
  37. package/lib/esm/components/carousel.d.ts +10 -0
  38. package/lib/esm/components/carousel.js +102 -0
  39. package/lib/esm/components/carousel.js.map +1 -0
  40. package/lib/esm/components/components.d.ts +12 -0
  41. package/lib/esm/components/components.js +17 -0
  42. package/lib/esm/components/components.js.map +1 -0
  43. package/lib/esm/components/custom-message.d.ts +12 -0
  44. package/lib/esm/components/custom-message.js +55 -0
  45. package/lib/esm/components/custom-message.js.map +1 -0
  46. package/lib/esm/components/document.d.ts +8 -0
  47. package/lib/esm/components/document.js +42 -0
  48. package/lib/esm/components/document.js.map +1 -0
  49. package/lib/esm/components/element.d.ts +4 -0
  50. package/lib/esm/components/element.js +51 -0
  51. package/lib/esm/components/element.js.map +1 -0
  52. package/lib/esm/components/handoff.d.ts +1 -0
  53. package/lib/esm/components/handoff.js +49 -0
  54. package/lib/esm/components/handoff.js.map +1 -0
  55. package/lib/esm/components/image.d.ts +8 -0
  56. package/lib/esm/components/image.js +35 -0
  57. package/lib/esm/components/image.js.map +1 -0
  58. package/lib/esm/components/index-types.d.ts +190 -0
  59. package/lib/esm/components/index-types.js +16 -0
  60. package/lib/esm/components/index-types.js.map +1 -0
  61. package/lib/esm/components/index.d.ts +23 -0
  62. package/lib/esm/components/index.js +24 -0
  63. package/lib/esm/components/index.js.map +1 -0
  64. package/lib/esm/components/location.d.ts +11 -0
  65. package/lib/esm/components/location.js +27 -0
  66. package/lib/esm/components/location.js.map +1 -0
  67. package/lib/esm/components/markdown.d.ts +7 -0
  68. package/lib/esm/components/markdown.js +152 -0
  69. package/lib/esm/components/markdown.js.map +1 -0
  70. package/lib/esm/components/message/index.d.ts +1 -0
  71. package/lib/esm/components/message/index.js +143 -0
  72. package/lib/esm/components/message/index.js.map +1 -0
  73. package/lib/esm/components/message/message-image.d.ts +7 -0
  74. package/lib/esm/components/message/message-image.js +14 -0
  75. package/lib/esm/components/message/message-image.js.map +1 -0
  76. package/lib/esm/components/message/styles.d.ts +8 -0
  77. package/lib/esm/components/message/styles.js +65 -0
  78. package/lib/esm/components/message/styles.js.map +1 -0
  79. package/lib/esm/components/message/timestamps.d.ts +11 -0
  80. package/lib/esm/components/message/timestamps.js +30 -0
  81. package/lib/esm/components/message/timestamps.js.map +1 -0
  82. package/lib/esm/components/message-template.d.ts +1 -0
  83. package/lib/esm/components/message-template.js +9 -0
  84. package/lib/esm/components/message-template.js.map +1 -0
  85. package/lib/esm/components/multichannel/facebook/facebook.d.ts +17 -0
  86. package/lib/esm/components/multichannel/facebook/facebook.js +43 -0
  87. package/lib/esm/components/multichannel/facebook/facebook.js.map +1 -0
  88. package/lib/esm/components/multichannel/index-types.d.ts +46 -0
  89. package/lib/esm/components/multichannel/index-types.js +2 -0
  90. package/lib/esm/components/multichannel/index-types.js.map +1 -0
  91. package/lib/esm/components/multichannel/index.d.ts +11 -0
  92. package/lib/esm/components/multichannel/index.js +12 -0
  93. package/lib/esm/components/multichannel/index.js.map +1 -0
  94. package/lib/esm/components/multichannel/multichannel-button.d.ts +1 -0
  95. package/lib/esm/components/multichannel/multichannel-button.js +71 -0
  96. package/lib/esm/components/multichannel/multichannel-button.js.map +1 -0
  97. package/lib/esm/components/multichannel/multichannel-carousel.d.ts +1 -0
  98. package/lib/esm/components/multichannel/multichannel-carousel.js +73 -0
  99. package/lib/esm/components/multichannel/multichannel-carousel.js.map +1 -0
  100. package/lib/esm/components/multichannel/multichannel-context.d.ts +11 -0
  101. package/lib/esm/components/multichannel/multichannel-context.js +12 -0
  102. package/lib/esm/components/multichannel/multichannel-context.js.map +1 -0
  103. package/lib/esm/components/multichannel/multichannel-reply.d.ts +1 -0
  104. package/lib/esm/components/multichannel/multichannel-reply.js +20 -0
  105. package/lib/esm/components/multichannel/multichannel-reply.js.map +1 -0
  106. package/lib/esm/components/multichannel/multichannel-text.d.ts +1 -0
  107. package/lib/esm/components/multichannel/multichannel-text.js +153 -0
  108. package/lib/esm/components/multichannel/multichannel-text.js.map +1 -0
  109. package/lib/esm/components/multichannel/multichannel-utils.d.ts +26 -0
  110. package/lib/esm/components/multichannel/multichannel-utils.js +69 -0
  111. package/lib/esm/components/multichannel/multichannel-utils.js.map +1 -0
  112. package/lib/esm/components/multichannel/multichannel.d.ts +1 -0
  113. package/lib/esm/components/multichannel/multichannel.js +55 -0
  114. package/lib/esm/components/multichannel/multichannel.js.map +1 -0
  115. package/lib/esm/components/multichannel/whatsapp/markdown.d.ts +1 -0
  116. package/lib/esm/components/multichannel/whatsapp/markdown.js +53 -0
  117. package/lib/esm/components/multichannel/whatsapp/markdown.js.map +1 -0
  118. package/lib/esm/components/pic.d.ts +6 -0
  119. package/lib/esm/components/pic.js +25 -0
  120. package/lib/esm/components/pic.js.map +1 -0
  121. package/lib/esm/components/raw.d.ts +9 -0
  122. package/lib/esm/components/raw.js +39 -0
  123. package/lib/esm/components/raw.js.map +1 -0
  124. package/lib/esm/components/reply.d.ts +9 -0
  125. package/lib/esm/components/reply.js +49 -0
  126. package/lib/esm/components/reply.js.map +1 -0
  127. package/lib/esm/components/share-button.d.ts +1 -0
  128. package/lib/esm/components/share-button.js +9 -0
  129. package/lib/esm/components/share-button.js.map +1 -0
  130. package/lib/esm/components/subtitle.d.ts +6 -0
  131. package/lib/esm/components/subtitle.js +19 -0
  132. package/lib/esm/components/subtitle.js.map +1 -0
  133. package/lib/esm/components/text.d.ts +8 -0
  134. package/lib/esm/components/text.js +42 -0
  135. package/lib/esm/components/text.js.map +1 -0
  136. package/lib/esm/components/title.d.ts +6 -0
  137. package/lib/esm/components/title.js +17 -0
  138. package/lib/esm/components/title.js.map +1 -0
  139. package/lib/esm/components/video.d.ts +8 -0
  140. package/lib/esm/components/video.js +26 -0
  141. package/lib/esm/components/video.js.map +1 -0
  142. package/lib/esm/components/webchat-settings.d.ts +3 -0
  143. package/lib/esm/components/webchat-settings.js +69 -0
  144. package/lib/esm/components/webchat-settings.js.map +1 -0
  145. package/lib/esm/components/whatsapp-button-list.d.ts +17 -0
  146. package/lib/esm/components/whatsapp-button-list.js +22 -0
  147. package/lib/esm/components/whatsapp-button-list.js.map +1 -0
  148. package/lib/esm/components/whatsapp-template.d.ts +1 -0
  149. package/lib/esm/components/whatsapp-template.js +20 -0
  150. package/lib/esm/components/whatsapp-template.js.map +1 -0
  151. package/lib/esm/constants.d.ts +173 -0
  152. package/lib/esm/constants.js +194 -0
  153. package/lib/esm/constants.js.map +1 -0
  154. package/lib/esm/contexts.d.ts +12 -0
  155. package/lib/esm/contexts.js +67 -0
  156. package/lib/esm/contexts.js.map +1 -0
  157. package/lib/esm/dev-app.d.ts +30 -0
  158. package/lib/esm/dev-app.js +74 -0
  159. package/lib/esm/dev-app.js.map +1 -0
  160. package/lib/esm/index-types.d.ts +128 -0
  161. package/lib/esm/index-types.js +12 -0
  162. package/lib/esm/index-types.js.map +1 -0
  163. package/lib/esm/index.d.ts +11 -0
  164. package/lib/esm/index.js +12 -0
  165. package/lib/esm/index.js.map +1 -0
  166. package/lib/esm/message-utils.d.ts +19 -0
  167. package/lib/esm/message-utils.js +41 -0
  168. package/lib/esm/message-utils.js.map +1 -0
  169. package/lib/esm/msg-to-botonic.d.ts +18 -0
  170. package/lib/esm/msg-to-botonic.js +135 -0
  171. package/lib/esm/msg-to-botonic.js.map +1 -0
  172. package/lib/esm/node-app.d.ts +12 -0
  173. package/lib/esm/node-app.js +21 -0
  174. package/lib/esm/node-app.js.map +1 -0
  175. package/lib/esm/react-bot.d.ts +8 -0
  176. package/lib/esm/react-bot.js +29 -0
  177. package/lib/esm/react-bot.js.map +1 -0
  178. package/lib/esm/util/dom.d.ts +13 -0
  179. package/lib/esm/util/dom.js +46 -0
  180. package/lib/esm/util/dom.js.map +1 -0
  181. package/lib/esm/util/environment.d.ts +6 -0
  182. package/lib/esm/util/environment.js +61 -0
  183. package/lib/esm/util/environment.js.map +1 -0
  184. package/lib/esm/util/error-boundary.d.ts +7 -0
  185. package/lib/esm/util/error-boundary.js +28 -0
  186. package/lib/esm/util/error-boundary.js.map +1 -0
  187. package/lib/esm/util/index.d.ts +8 -0
  188. package/lib/esm/util/index.js +9 -0
  189. package/lib/esm/util/index.js.map +1 -0
  190. package/lib/esm/util/logs.d.ts +2 -0
  191. package/lib/esm/util/logs.js +15 -0
  192. package/lib/esm/util/logs.js.map +1 -0
  193. package/lib/esm/util/objects.d.ts +3 -0
  194. package/lib/esm/util/objects.js +38 -0
  195. package/lib/esm/util/objects.js.map +1 -0
  196. package/lib/esm/util/react.d.ts +12 -0
  197. package/lib/esm/util/react.js +34 -0
  198. package/lib/esm/util/react.js.map +1 -0
  199. package/lib/esm/util/regexs.d.ts +2 -0
  200. package/lib/esm/util/regexs.js +18 -0
  201. package/lib/esm/util/regexs.js.map +1 -0
  202. package/lib/esm/util/webchat.d.ts +11 -0
  203. package/lib/esm/util/webchat.js +53 -0
  204. package/lib/esm/util/webchat.js.map +1 -0
  205. package/lib/esm/webchat/actions.d.ts +27 -0
  206. package/lib/esm/webchat/actions.js +29 -0
  207. package/lib/esm/webchat/actions.js.map +1 -0
  208. package/lib/esm/webchat/components/attachment.d.ts +5 -0
  209. package/lib/esm/webchat/components/attachment.js +24 -0
  210. package/lib/esm/webchat/components/attachment.js.map +1 -0
  211. package/lib/esm/webchat/components/common.d.ts +1 -0
  212. package/lib/esm/webchat/components/common.js +9 -0
  213. package/lib/esm/webchat/components/common.js.map +1 -0
  214. package/lib/esm/webchat/components/conditional-animation.d.ts +1 -0
  215. package/lib/esm/webchat/components/conditional-animation.js +12 -0
  216. package/lib/esm/webchat/components/conditional-animation.js.map +1 -0
  217. package/lib/esm/webchat/components/emoji-picker.d.ts +5 -0
  218. package/lib/esm/webchat/components/emoji-picker.js +37 -0
  219. package/lib/esm/webchat/components/emoji-picker.js.map +1 -0
  220. package/lib/esm/webchat/components/persistent-menu.d.ts +10 -0
  221. package/lib/esm/webchat/components/persistent-menu.js +39 -0
  222. package/lib/esm/webchat/components/persistent-menu.js.map +1 -0
  223. package/lib/esm/webchat/components/send-button.d.ts +3 -0
  224. package/lib/esm/webchat/components/send-button.js +14 -0
  225. package/lib/esm/webchat/components/send-button.js.map +1 -0
  226. package/lib/esm/webchat/components/styled-scrollbar.d.ts +1 -0
  227. package/lib/esm/webchat/components/styled-scrollbar.js +50 -0
  228. package/lib/esm/webchat/components/styled-scrollbar.js.map +1 -0
  229. package/lib/esm/webchat/components/typing-indicator.d.ts +1 -0
  230. package/lib/esm/webchat/components/typing-indicator.js +6 -0
  231. package/lib/esm/webchat/components/typing-indicator.js.map +1 -0
  232. package/lib/esm/webchat/devices/device-adapter.d.ts +12 -0
  233. package/lib/esm/webchat/devices/device-adapter.js +43 -0
  234. package/lib/esm/webchat/devices/device-adapter.js.map +1 -0
  235. package/lib/esm/webchat/devices/index.d.ts +11 -0
  236. package/lib/esm/webchat/devices/index.js +18 -0
  237. package/lib/esm/webchat/devices/index.js.map +1 -0
  238. package/lib/esm/webchat/devices/scrollbar-controller.d.ts +12 -0
  239. package/lib/esm/webchat/devices/scrollbar-controller.js +99 -0
  240. package/lib/esm/webchat/devices/scrollbar-controller.js.map +1 -0
  241. package/lib/esm/webchat/devices/webchat-resizer.d.ts +9 -0
  242. package/lib/esm/webchat/devices/webchat-resizer.js +43 -0
  243. package/lib/esm/webchat/devices/webchat-resizer.js.map +1 -0
  244. package/lib/esm/webchat/header.d.ts +3 -0
  245. package/lib/esm/webchat/header.js +79 -0
  246. package/lib/esm/webchat/header.js.map +1 -0
  247. package/lib/esm/webchat/hooks/index.d.ts +5 -0
  248. package/lib/esm/webchat/hooks/index.js +6 -0
  249. package/lib/esm/webchat/hooks/index.js.map +1 -0
  250. package/lib/esm/webchat/hooks/use-component-visible.d.ts +8 -0
  251. package/lib/esm/webchat/hooks/use-component-visible.js +20 -0
  252. package/lib/esm/webchat/hooks/use-component-visible.js.map +1 -0
  253. package/lib/esm/webchat/hooks/use-component-will-mount.d.ts +1 -0
  254. package/lib/esm/webchat/hooks/use-component-will-mount.js +5 -0
  255. package/lib/esm/webchat/hooks/use-component-will-mount.js.map +1 -0
  256. package/lib/esm/webchat/hooks/use-previous.d.ts +1 -0
  257. package/lib/esm/webchat/hooks/use-previous.js +9 -0
  258. package/lib/esm/webchat/hooks/use-previous.js.map +1 -0
  259. package/lib/esm/webchat/hooks/use-typing.d.ts +10 -0
  260. package/lib/esm/webchat/hooks/use-typing.js +26 -0
  261. package/lib/esm/webchat/hooks/use-typing.js.map +1 -0
  262. package/lib/esm/webchat/hooks/use-webchat.d.ts +41 -0
  263. package/lib/esm/webchat/hooks/use-webchat.js +177 -0
  264. package/lib/esm/webchat/hooks/use-webchat.js.map +1 -0
  265. package/lib/esm/webchat/index-types.d.ts +62 -0
  266. package/lib/esm/webchat/index-types.js +2 -0
  267. package/lib/esm/webchat/index-types.js.map +1 -0
  268. package/lib/esm/webchat/index.d.ts +4 -0
  269. package/lib/esm/webchat/index.js +10 -0
  270. package/lib/esm/webchat/index.js.map +1 -0
  271. package/lib/esm/webchat/message-list/index.d.ts +1 -0
  272. package/lib/esm/webchat/message-list/index.js +73 -0
  273. package/lib/esm/webchat/message-list/index.js.map +1 -0
  274. package/lib/esm/webchat/message-list/intro-message.d.ts +1 -0
  275. package/lib/esm/webchat/message-list/intro-message.js +18 -0
  276. package/lib/esm/webchat/message-list/intro-message.js.map +1 -0
  277. package/lib/esm/webchat/message-list/scroll-button.d.ts +5 -0
  278. package/lib/esm/webchat/message-list/scroll-button.js +17 -0
  279. package/lib/esm/webchat/message-list/scroll-button.js.map +1 -0
  280. package/lib/esm/webchat/message-list/styles.d.ts +4 -0
  281. package/lib/esm/webchat/message-list/styles.js +46 -0
  282. package/lib/esm/webchat/message-list/styles.js.map +1 -0
  283. package/lib/esm/webchat/message-list/unread-messages-banner.d.ts +6 -0
  284. package/lib/esm/webchat/message-list/unread-messages-banner.js +16 -0
  285. package/lib/esm/webchat/message-list/unread-messages-banner.js.map +1 -0
  286. package/lib/esm/webchat/message-list/use-debounce.d.ts +1 -0
  287. package/lib/esm/webchat/message-list/use-debounce.js +14 -0
  288. package/lib/esm/webchat/message-list/use-debounce.js.map +1 -0
  289. package/lib/esm/webchat/messages-reducer.d.ts +6 -0
  290. package/lib/esm/webchat/messages-reducer.js +82 -0
  291. package/lib/esm/webchat/messages-reducer.js.map +1 -0
  292. package/lib/esm/webchat/replies.d.ts +1 -0
  293. package/lib/esm/webchat/replies.js +38 -0
  294. package/lib/esm/webchat/replies.js.map +1 -0
  295. package/lib/esm/webchat/session-view.d.ts +1 -0
  296. package/lib/esm/webchat/session-view.js +96 -0
  297. package/lib/esm/webchat/session-view.js.map +1 -0
  298. package/lib/esm/webchat/trigger-button/index.d.ts +1 -0
  299. package/lib/esm/webchat/trigger-button/index.js +28 -0
  300. package/lib/esm/webchat/trigger-button/index.js.map +1 -0
  301. package/lib/esm/webchat/trigger-button/styles.d.ts +3 -0
  302. package/lib/esm/webchat/trigger-button/styles.js +36 -0
  303. package/lib/esm/webchat/trigger-button/styles.js.map +1 -0
  304. package/lib/esm/webchat/use-storage-state-hook.d.ts +1 -0
  305. package/lib/esm/webchat/use-storage-state-hook.js +38 -0
  306. package/lib/esm/webchat/use-storage-state-hook.js.map +1 -0
  307. package/lib/esm/webchat/webchat-dev.d.ts +7 -0
  308. package/lib/esm/webchat/webchat-dev.js +56 -0
  309. package/lib/esm/webchat/webchat-dev.js.map +1 -0
  310. package/lib/esm/webchat/webchat-reducer.d.ts +6 -0
  311. package/lib/esm/webchat/webchat-reducer.js +46 -0
  312. package/lib/esm/webchat/webchat-reducer.js.map +1 -0
  313. package/lib/esm/webchat/webchat.d.ts +3 -0
  314. package/lib/esm/webchat/webchat.js +637 -0
  315. package/lib/esm/webchat/webchat.js.map +1 -0
  316. package/lib/esm/webchat/webview.d.ts +2 -0
  317. package/lib/esm/webchat/webview.js +78 -0
  318. package/lib/esm/webchat/webview.js.map +1 -0
  319. package/lib/esm/webchat-app.d.ts +99 -0
  320. package/lib/esm/webchat-app.js +281 -0
  321. package/lib/esm/webchat-app.js.map +1 -0
  322. package/lib/esm/webview-app.d.ts +7 -0
  323. package/lib/esm/webview-app.js +95 -0
  324. package/lib/esm/webview-app.js.map +1 -0
  325. package/package.json +2 -2
  326. package/src/.DS_Store +0 -0
  327. package/src/components/index-types.ts +1 -0
  328. package/src/components/{message.jsx → message/index.jsx} +32 -92
  329. package/src/components/message/message-image.tsx +52 -0
  330. package/src/components/message/styles.ts +73 -0
  331. package/src/components/message/timestamps.jsx +62 -0
  332. package/src/constants.js +2 -0
  333. package/src/webchat/trigger-button/index.tsx +10 -5
  334. package/lib/cjs/components/message.js.map +0 -1
  335. package/lib/cjs/components/timestamps.js +0 -51
  336. package/lib/cjs/components/timestamps.js.map +0 -1
  337. package/src/components/timestamps.jsx +0 -68
  338. /package/lib/cjs/components/{message.d.ts → message/index.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botonic/react",
3
- "version": "0.24.0-alpha.3",
3
+ "version": "0.24.0-alpha.4",
4
4
  "license": "MIT",
5
5
  "description": "Build Chatbots using React",
6
6
  "main": "./lib/cjs",
@@ -36,7 +36,7 @@
36
36
  ],
37
37
  "dependencies": {
38
38
  "@botonic/core": "0.23.2-alpha.0",
39
- "axios": "^1.4.0",
39
+ "axios": "^1.6.0",
40
40
  "emoji-picker-react": "^4.4.9",
41
41
  "framer-motion": "^3.1.1",
42
42
  "he": "^1.2.0",
package/src/.DS_Store ADDED
Binary file
@@ -124,6 +124,7 @@ export interface ThemeProps extends StyleProp {
124
124
  CustomProp
125
125
  message?: {
126
126
  bot?: BlobProps & ImageProp & StyleProp
127
+ agent?: ImageProp
127
128
  user?: BlobProps & StyleProp
128
129
  customTypes?: React.ComponentType[]
129
130
  } & StyleProp & {
@@ -1,73 +1,27 @@
1
1
  import { INPUT, isBrowser } from '@botonic/core'
2
2
  import React, { useContext, useEffect, useState } from 'react'
3
3
  import Fade from 'react-reveal/Fade'
4
- import styled from 'styled-components'
5
4
  import { v4 as uuidv4 } from 'uuid'
6
5
 
7
- import { COLORS, WEBCHAT } from '../constants'
8
- import { RequestContext, WebchatContext } from '../contexts'
9
- import { SENDERS } from '../index-types'
10
- import { isDev, resolveImage } from '../util/environment'
11
- import { ConditionalWrapper, renderComponent } from '../util/react'
12
- import { Button } from './button'
13
- import { ButtonsDisabler } from './buttons-disabler'
14
- import { getMarkdownStyle, renderLinks, renderMarkdown } from './markdown'
15
- import { Reply } from './reply'
6
+ import { COLORS, WEBCHAT } from '../../constants'
7
+ import { RequestContext, WebchatContext } from '../../contexts'
8
+ import { SENDERS } from '../../index-types'
9
+ import { isDev } from '../../util/environment'
10
+ import { ConditionalWrapper, renderComponent } from '../../util/react'
11
+ import { Button } from '../button'
12
+ import { ButtonsDisabler } from '../buttons-disabler'
13
+ import { getMarkdownStyle, renderLinks, renderMarkdown } from '../markdown'
14
+ import { Reply } from '../reply'
15
+ import { MessageImage } from './message-image'
16
+ import {
17
+ BlobContainer,
18
+ BlobText,
19
+ BlobTick,
20
+ BlobTickContainer,
21
+ MessageContainer,
22
+ } from './styles'
16
23
  import { MessageTimestamp, resolveMessageTimestamps } from './timestamps'
17
24
 
18
- const MessageContainer = styled.div`
19
- display: flex;
20
- justify-content: ${props => (props.isSentByUser ? 'flex-end' : 'flex-start')};
21
- position: relative;
22
- padding: 0px 6px;
23
- `
24
-
25
- const BotMessageImageContainer = styled.div`
26
- width: 28px;
27
- padding: 12px 4px;
28
- flex: none;
29
- display: flex;
30
- align-items: center;
31
- justify-content: center;
32
- `
33
-
34
- const Blob = styled.div`
35
- position: relative;
36
- margin: 8px;
37
- border-radius: 8px;
38
- background-color: ${props => props.bgcolor};
39
- color: ${props => props.color};
40
- max-width: ${props =>
41
- props.blob
42
- ? props.blobwidth
43
- ? props.blobwidth
44
- : '60%'
45
- : 'calc(100% - 16px)'};
46
- `
47
-
48
- const BlobText = styled.div`
49
- padding: ${props => (props.blob ? '8px 12px' : '0px')};
50
- display: flex;
51
- flex-direction: column;
52
- white-space: pre-line;
53
- ${props => props.markdownstyle}
54
- `
55
-
56
- const BlobTickContainer = styled.div`
57
- position: absolute;
58
- box-sizing: border-box;
59
- height: 100%;
60
- padding: 18px 0px 18px 0px;
61
- display: flex;
62
- top: 0;
63
- align-items: center;
64
- `
65
- const BlobTick = styled.div`
66
- position: relative;
67
- margin: -${props => props.pointerSize}px 0px;
68
- border: ${props => props.pointerSize}px solid ${COLORS.TRANSPARENT};
69
- `
70
-
71
25
  export const Message = props => {
72
26
  const { defaultTyping, defaultDelay } = useContext(RequestContext)
73
27
  let {
@@ -205,8 +159,8 @@ export const Message = props => {
205
159
  getThemeProperty(`message.${userOrBotMessage}.blobTick`, true)
206
160
 
207
161
  const renderBrowser = () => {
208
- const m = webchatState.messagesJSON.find(m => m.id === state.id)
209
- if (!m || !m.display) return <></>
162
+ const messageJSON = webchatState.messagesJSON.find(m => m.id === state.id)
163
+ if (!messageJSON || !messageJSON.display) return <></>
210
164
 
211
165
  const getBlobTick = pointerSize => {
212
166
  // to add a border to the blobTick we need to create two triangles and overlap them
@@ -241,20 +195,15 @@ export const Message = props => {
241
195
  )
242
196
  }
243
197
 
244
- const BotMessageImage = getThemeProperty(
245
- WEBCHAT.CUSTOM_PROPERTIES.botMessageImage,
246
- getThemeProperty(
247
- WEBCHAT.CUSTOM_PROPERTIES.brandImage,
248
- WEBCHAT.DEFAULTS.LOGO
249
- )
250
- )
251
198
  const animationsEnabled = getThemeProperty(
252
199
  WEBCHAT.CUSTOM_PROPERTIES.enableAnimations,
253
200
  true
254
201
  )
255
202
 
256
203
  const resolveCustomTypeName = () =>
257
- isSentByBot && type === INPUT.CUSTOM ? ` ${m.customTypeName}` : ''
204
+ isSentByBot && type === INPUT.CUSTOM
205
+ ? ` ${messageJSON.customTypeName}`
206
+ : ''
258
207
 
259
208
  const className = `${type}-${userOrBotMessage}${resolveCustomTypeName()}`
260
209
 
@@ -270,22 +219,12 @@ export const Message = props => {
270
219
  ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.messageStyle),
271
220
  }}
272
221
  >
273
- {isSentByBot && BotMessageImage && (
274
- <BotMessageImageContainer
275
- style={{
276
- ...getThemeProperty(
277
- WEBCHAT.CUSTOM_PROPERTIES.botMessageImageStyle
278
- ),
279
- ...imagestyle,
280
- }}
281
- >
282
- <img
283
- style={{ width: '100%' }}
284
- src={resolveImage(BotMessageImage)}
285
- />
286
- </BotMessageImageContainer>
287
- )}
288
- <Blob
222
+ <MessageImage
223
+ imagestyle={imagestyle}
224
+ isSentByAgent={isSentByAgent}
225
+ isSentByUser={isSentByUser}
226
+ />
227
+ <BlobContainer
289
228
  className={className}
290
229
  bgcolor={getBgColor()}
291
230
  color={isSentByUser ? COLORS.SOLID_WHITE : COLORS.SOLID_BLACK}
@@ -319,13 +258,14 @@ export const Message = props => {
319
258
  )}
320
259
  {Boolean(blob) && hasBlobTick() && getBlobTick(6)}
321
260
  {Boolean(blob) && hasBlobTick() && getBlobTick(5)}
322
- </Blob>
261
+ </BlobContainer>
323
262
  </MessageContainer>
324
263
  {timestampsEnabled && (
325
264
  <MessageTimestamp
326
- timestamp={m.timestamp}
327
- style={timestampStyle}
328
265
  isSentByUser={isSentByUser}
266
+ sentBy={sentBy}
267
+ style={timestampStyle}
268
+ timestamp={messageJSON.timestamp}
329
269
  />
330
270
  )}
331
271
  </>
@@ -0,0 +1,52 @@
1
+ import React, { useContext } from 'react'
2
+
3
+ import { WEBCHAT } from '../../constants'
4
+ import { WebchatContext } from '../../contexts'
5
+ import { resolveImage } from '../../util/environment'
6
+ import { BotMessageImageContainer } from './styles'
7
+
8
+ interface MessageImageProps {
9
+ imagestyle: Record<string, unknown>
10
+ isSentByUser: boolean
11
+ isSentByAgent: boolean
12
+ }
13
+
14
+ export const MessageImage = ({
15
+ imagestyle,
16
+ isSentByUser,
17
+ isSentByAgent,
18
+ }: MessageImageProps) => {
19
+ const { getThemeProperty } = useContext(WebchatContext)
20
+
21
+ const BotMessageImage = getThemeProperty(
22
+ WEBCHAT.CUSTOM_PROPERTIES.botMessageImage,
23
+ getThemeProperty(
24
+ WEBCHAT.CUSTOM_PROPERTIES.brandImage,
25
+ WEBCHAT.DEFAULTS.LOGO
26
+ )
27
+ )
28
+
29
+ const AgentMessageImage = getThemeProperty(
30
+ WEBCHAT.CUSTOM_PROPERTIES.agentMessageImage,
31
+ BotMessageImage
32
+ )
33
+
34
+ return (
35
+ !isSentByUser &&
36
+ BotMessageImage && (
37
+ <BotMessageImageContainer
38
+ style={{
39
+ ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.botMessageImageStyle),
40
+ ...imagestyle,
41
+ }}
42
+ >
43
+ <img
44
+ style={{ width: '100%' }}
45
+ src={resolveImage(
46
+ isSentByAgent ? AgentMessageImage : BotMessageImage
47
+ )}
48
+ />
49
+ </BotMessageImageContainer>
50
+ )
51
+ )
52
+ }
@@ -0,0 +1,73 @@
1
+ import styled from 'styled-components'
2
+
3
+ import { COLORS } from '../../constants'
4
+
5
+ export const MessageContainer = styled.div`
6
+ display: flex;
7
+ justify-content: ${props => (props.isSentByUser ? 'flex-end' : 'flex-start')};
8
+ position: relative;
9
+ padding: 0px 6px;
10
+ `
11
+
12
+ export const BotMessageImageContainer = styled.div`
13
+ width: 28px;
14
+ padding: 12px 4px;
15
+ flex: none;
16
+ display: flex;
17
+ align-items: center;
18
+ justify-content: center;
19
+ `
20
+
21
+ export const BlobContainer = styled.div`
22
+ position: relative;
23
+ margin: 8px;
24
+ border-radius: 8px;
25
+ background-color: ${props => props.bgcolor};
26
+ color: ${props => props.color};
27
+ max-width: ${props =>
28
+ props.blob
29
+ ? props.blobwidth
30
+ ? props.blobwidth
31
+ : '60%'
32
+ : 'calc(100% - 16px)'};
33
+ `
34
+
35
+ export const BlobText = styled.div`
36
+ padding: ${props => (props.blob ? '8px 12px' : '0px')};
37
+ display: flex;
38
+ flex-direction: column;
39
+ white-space: pre-line;
40
+ ${props => props.markdownstyle}
41
+ `
42
+
43
+ export const BlobTickContainer = styled.div`
44
+ position: absolute;
45
+ box-sizing: border-box;
46
+ height: 100%;
47
+ padding: 18px 0px 18px 0px;
48
+ display: flex;
49
+ top: 0;
50
+ align-items: center;
51
+ `
52
+ export const BlobTick = styled.div`
53
+ position: relative;
54
+ margin: -${props => props.pointerSize}px 0px;
55
+ border: ${props => props.pointerSize}px solid ${COLORS.TRANSPARENT};
56
+ `
57
+
58
+ export const TimestampContainer = styled.div`
59
+ display: flex;
60
+ position: relative;
61
+ align-items: flex-start;
62
+ `
63
+
64
+ export const TimestampText = styled.div`
65
+ @import url('https://fonts.googleapis.com/css?family=Lato');
66
+ font-family: Lato;
67
+ font-size: 10px;
68
+ color: ${COLORS.SOLID_BLACK};
69
+ width: 100%;
70
+ text-align: ${props => (props.isSentByUser ? 'right' : 'left')};
71
+ padding: ${props => (props.isSentByUser ? '0px 15px' : '0px 50px')};
72
+ margin-bottom: 5px;
73
+ `
@@ -0,0 +1,62 @@
1
+ import React from 'react'
2
+
3
+ import { WEBCHAT } from '../../constants'
4
+ import { TimestampContainer, TimestampText } from './styles'
5
+
6
+ export const resolveMessageTimestamps = (
7
+ getThemeFn,
8
+ messageTimestampEnabled
9
+ ) => {
10
+ const timestampsFormat = getThemeFn(
11
+ WEBCHAT.CUSTOM_PROPERTIES.messageTimestampsFormat
12
+ )
13
+ const timestampStyle = getThemeFn(
14
+ WEBCHAT.CUSTOM_PROPERTIES.messageTimestampsStyle
15
+ )
16
+ const timestampsEnabled = Boolean(
17
+ messageTimestampEnabled !== undefined
18
+ ? messageTimestampEnabled
19
+ : getThemeFn(
20
+ WEBCHAT.CUSTOM_PROPERTIES.enableMessageTimestamps,
21
+ Boolean(timestampStyle) || Boolean(timestampsFormat) || false
22
+ )
23
+ )
24
+
25
+ const defaultTimestampFormat = {
26
+ month: 'short',
27
+ day: 'numeric',
28
+ hour: 'numeric',
29
+ minute: 'numeric',
30
+ second: 'numeric',
31
+ }
32
+
33
+ const getFormattedTimestamp = timestampsFormat
34
+ ? timestampsFormat()
35
+ : new Date().toLocaleString(undefined, defaultTimestampFormat)
36
+
37
+ return {
38
+ timestampsEnabled,
39
+ getFormattedTimestamp,
40
+ timestampStyle,
41
+ }
42
+ }
43
+
44
+ export const MessageTimestamp = ({
45
+ timestamp,
46
+ style,
47
+ isSentByUser,
48
+ sentBy,
49
+ }) => {
50
+ return (
51
+ <TimestampContainer className={`botonic-timestamp-${sentBy}`}>
52
+ <TimestampText
53
+ isSentByUser={isSentByUser}
54
+ style={{
55
+ ...style,
56
+ }}
57
+ >
58
+ {timestamp}
59
+ </TimestampText>
60
+ </TimestampContainer>
61
+ )
62
+ }
package/src/constants.js CHANGED
@@ -86,6 +86,8 @@ export const WEBCHAT = {
86
86
  botMessageImage: 'message.bot.image',
87
87
  botMessageImageStyle: 'message.bot.imageStyle',
88
88
  botMessageStyle: 'message.bot.style',
89
+ // Agent Message
90
+ agentMessageImage: 'message.agent.image',
89
91
  // User Message
90
92
  customMessageTypes: 'message.customTypes',
91
93
  messageStyle: 'message.style',
@@ -32,11 +32,16 @@ export const TriggerButton = (): JSX.Element => {
32
32
  WEBCHAT.CUSTOM_PROPERTIES.triggerButtonStyle
33
33
  )
34
34
 
35
- const notificationsEnabled = getThemeProperty(
36
- WEBCHAT.CUSTOM_PROPERTIES.triggerButtonNotificationsEnabled,
35
+ const notificationsTriggerButtonEnabled = getThemeProperty(
36
+ WEBCHAT.CUSTOM_PROPERTIES.notificationsTriggerButtonEnabled,
37
37
  false
38
38
  )
39
39
 
40
+ const notificationsEnabled = getThemeProperty(
41
+ WEBCHAT.CUSTOM_PROPERTIES.notificationsEnabled,
42
+ notificationsTriggerButtonEnabled
43
+ )
44
+
40
45
  const CustomTriggerButton = getThemeProperty(
41
46
  WEBCHAT.CUSTOM_PROPERTIES.customTrigger,
42
47
  undefined
@@ -48,10 +53,10 @@ export const TriggerButton = (): JSX.Element => {
48
53
  }
49
54
 
50
55
  return (
51
- <div className='trigger-container' onClick={handleClick}>
52
- {webchatState.unreadMessages !== 0 && notificationsEnabled && (
56
+ <div onClick={handleClick}>
57
+ {webchatState.numUnreadMessages !== 0 && notificationsEnabled && (
53
58
  <UnreadMessagesCounter className='trigger-notifications'>
54
- {webchatState.unreadMessages}
59
+ {webchatState.numUnreadMessages}
55
60
  </UnreadMessagesCounter>
56
61
  )}
57
62
  {CustomTriggerButton ? (
@@ -1 +0,0 @@
1
- {"version":3,"file":"message.js","sourceRoot":"src/","sources":["components/message.jsx"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MessageTimestamp = exports.resolveMessageTimestamps = void 0;
4
- const tslib_1 = require("tslib");
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- const react_1 = tslib_1.__importDefault(require("react"));
7
- const styled_components_1 = tslib_1.__importDefault(require("styled-components"));
8
- const constants_1 = require("../constants");
9
- const resolveMessageTimestamps = (getThemeFn, messageTimestampEnabled) => {
10
- const timestampsFormat = getThemeFn('message.timestamps.format');
11
- const timestampStyle = getThemeFn('message.timestamps.style');
12
- const timestampsEnabled = Boolean(messageTimestampEnabled !== undefined
13
- ? messageTimestampEnabled
14
- : getThemeFn('message.timestamps.enable', Boolean(timestampStyle) || Boolean(timestampsFormat) || false));
15
- const defaultTimestampFormat = {
16
- month: 'short',
17
- day: 'numeric',
18
- hour: 'numeric',
19
- minute: 'numeric',
20
- second: 'numeric',
21
- };
22
- const getFormattedTimestamp = (timestampsFormat && timestampsFormat()) ||
23
- new Date().toLocaleString(undefined, defaultTimestampFormat);
24
- return {
25
- timestampsEnabled,
26
- getFormattedTimestamp,
27
- timestampStyle,
28
- };
29
- };
30
- exports.resolveMessageTimestamps = resolveMessageTimestamps;
31
- const TimestampContainer = styled_components_1.default.div `
32
- display: flex;
33
- position: relative;
34
- align-items: flex-start;
35
- `;
36
- const TimestampText = styled_components_1.default.div `
37
- @import url('https://fonts.googleapis.com/css?family=Lato');
38
- font-family: Lato;
39
- font-size: 10px;
40
- color: ${constants_1.COLORS.SOLID_BLACK};
41
- width: 100%;
42
- text-align: ${props => (props.isSentByUser ? 'right' : 'left')};
43
- padding: ${props => (props.isSentByUser ? '0px 15px' : '0px 50px')};
44
- margin-bottom: 5px;
45
- `;
46
- const MessageTimestamp = ({ timestamp, style, isSentByUser }) => {
47
- const classSufix = isSentByUser ? 'user' : 'bot';
48
- return ((0, jsx_runtime_1.jsx)(TimestampContainer, Object.assign({ className: `botonic-timestamp-${classSufix}` }, { children: (0, jsx_runtime_1.jsx)(TimestampText, Object.assign({ isSentByUser: isSentByUser, style: Object.assign({}, style) }, { children: timestamp })) })));
49
- };
50
- exports.MessageTimestamp = MessageTimestamp;
51
- //# sourceMappingURL=timestamps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timestamps.js","sourceRoot":"src/","sources":["components/timestamps.jsx"],"names":[],"mappings":";;;;;AAAA,0DAAyB;AACzB,kFAAsC;AAEtC,4CAAqC;AAE9B,MAAM,wBAAwB,GAAG,CACtC,UAAU,EACV,uBAAuB,EACvB,EAAE;IACF,MAAM,gBAAgB,GAAG,UAAU,CAAC,2BAA2B,CAAC,CAAA;IAChE,MAAM,cAAc,GAAG,UAAU,CAAC,0BAA0B,CAAC,CAAA;IAC7D,MAAM,iBAAiB,GAAG,OAAO,CAC/B,uBAAuB,KAAK,SAAS;QACnC,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,UAAU,CACR,2BAA2B,EAC3B,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAC9D,CACN,CAAA;IACD,MAAM,sBAAsB,GAAG;QAC7B,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CAAA;IACD,MAAM,qBAAqB,GACzB,CAAC,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,IAAI,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAA;IAC9D,OAAO;QACL,iBAAiB;QACjB,qBAAqB;QACrB,cAAc;KACf,CAAA;AACH,CAAC,CAAA;AA7BY,QAAA,wBAAwB,4BA6BpC;AAED,MAAM,kBAAkB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;CAIpC,CAAA;AAED,MAAM,aAAa,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;WAIrB,kBAAM,CAAC,WAAW;;gBAEb,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;aACnD,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;;CAEnE,CAAA;AAEM,MAAM,gBAAgB,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;IACrE,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IAChD,OAAO,CACL,uBAAC,kBAAkB,kBAAC,SAAS,EAAE,qBAAqB,UAAU,EAAE,gBAC9D,uBAAC,aAAa,kBACZ,YAAY,EAAE,YAAY,EAC1B,KAAK,oBACA,KAAK,iBAGT,SAAS,IACI,IACG,CACtB,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,gBAAgB,oBAc5B"}
@@ -1,68 +0,0 @@
1
- import React from 'react'
2
- import styled from 'styled-components'
3
-
4
- import { COLORS } from '../constants'
5
-
6
- export const resolveMessageTimestamps = (
7
- getThemeFn,
8
- messageTimestampEnabled
9
- ) => {
10
- const timestampsFormat = getThemeFn('message.timestamps.format')
11
- const timestampStyle = getThemeFn('message.timestamps.style')
12
- const timestampsEnabled = Boolean(
13
- messageTimestampEnabled !== undefined
14
- ? messageTimestampEnabled
15
- : getThemeFn(
16
- 'message.timestamps.enable',
17
- Boolean(timestampStyle) || Boolean(timestampsFormat) || false
18
- )
19
- )
20
- const defaultTimestampFormat = {
21
- month: 'short',
22
- day: 'numeric',
23
- hour: 'numeric',
24
- minute: 'numeric',
25
- second: 'numeric',
26
- }
27
- const getFormattedTimestamp =
28
- (timestampsFormat && timestampsFormat()) ||
29
- new Date().toLocaleString(undefined, defaultTimestampFormat)
30
- return {
31
- timestampsEnabled,
32
- getFormattedTimestamp,
33
- timestampStyle,
34
- }
35
- }
36
-
37
- const TimestampContainer = styled.div`
38
- display: flex;
39
- position: relative;
40
- align-items: flex-start;
41
- `
42
-
43
- const TimestampText = styled.div`
44
- @import url('https://fonts.googleapis.com/css?family=Lato');
45
- font-family: Lato;
46
- font-size: 10px;
47
- color: ${COLORS.SOLID_BLACK};
48
- width: 100%;
49
- text-align: ${props => (props.isSentByUser ? 'right' : 'left')};
50
- padding: ${props => (props.isSentByUser ? '0px 15px' : '0px 50px')};
51
- margin-bottom: 5px;
52
- `
53
-
54
- export const MessageTimestamp = ({ timestamp, style, isSentByUser }) => {
55
- const classSufix = isSentByUser ? 'user' : 'bot'
56
- return (
57
- <TimestampContainer className={`botonic-timestamp-${classSufix}`}>
58
- <TimestampText
59
- isSentByUser={isSentByUser}
60
- style={{
61
- ...style,
62
- }}
63
- >
64
- {timestamp}
65
- </TimestampText>
66
- </TimestampContainer>
67
- )
68
- }