@botonic/react 0.22.0-alpha.1 → 0.22.0-alpha.2

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 (243) hide show
  1. package/lib/cjs/botonic-tester.js +4 -6
  2. package/lib/cjs/botonic-tester.js.map +1 -1
  3. package/lib/cjs/components/audio.js +3 -7
  4. package/lib/cjs/components/audio.js.map +1 -1
  5. package/lib/cjs/components/button.js +7 -18
  6. package/lib/cjs/components/button.js.map +1 -1
  7. package/lib/cjs/components/carousel.d.ts +1 -1
  8. package/lib/cjs/components/carousel.js +6 -19
  9. package/lib/cjs/components/carousel.js.map +1 -1
  10. package/lib/cjs/components/custom-message.d.ts +3 -34
  11. package/lib/cjs/components/custom-message.js +4 -10
  12. package/lib/cjs/components/custom-message.js.map +1 -1
  13. package/lib/cjs/components/document.js +3 -6
  14. package/lib/cjs/components/document.js.map +1 -1
  15. package/lib/cjs/components/element.js +3 -2
  16. package/lib/cjs/components/element.js.map +1 -1
  17. package/lib/cjs/components/handoff.js +3 -7
  18. package/lib/cjs/components/handoff.js.map +1 -1
  19. package/lib/cjs/components/image.js +3 -7
  20. package/lib/cjs/components/image.js.map +1 -1
  21. package/lib/cjs/components/location.js +3 -9
  22. package/lib/cjs/components/location.js.map +1 -1
  23. package/lib/cjs/components/message-template.js +2 -3
  24. package/lib/cjs/components/message-template.js.map +1 -1
  25. package/lib/cjs/components/message.js +9 -27
  26. package/lib/cjs/components/message.js.map +1 -1
  27. package/lib/cjs/components/multichannel/index.d.ts +5 -5
  28. package/lib/cjs/components/multichannel/multichannel-button.js +4 -5
  29. package/lib/cjs/components/multichannel/multichannel-button.js.map +1 -1
  30. package/lib/cjs/components/multichannel/multichannel-carousel.js +3 -20
  31. package/lib/cjs/components/multichannel/multichannel-carousel.js.map +1 -1
  32. package/lib/cjs/components/multichannel/multichannel-context.d.ts +1 -1
  33. package/lib/cjs/components/multichannel/multichannel-reply.js +2 -1
  34. package/lib/cjs/components/multichannel/multichannel-reply.js.map +1 -1
  35. package/lib/cjs/components/multichannel/multichannel-text.d.ts +1 -1
  36. package/lib/cjs/components/multichannel/multichannel-text.js +10 -25
  37. package/lib/cjs/components/multichannel/multichannel-text.js.map +1 -1
  38. package/lib/cjs/components/multichannel/multichannel.js +16 -28
  39. package/lib/cjs/components/multichannel/multichannel.js.map +1 -1
  40. package/lib/cjs/components/pic.js +3 -2
  41. package/lib/cjs/components/pic.js.map +1 -1
  42. package/lib/cjs/components/raw.js +3 -12
  43. package/lib/cjs/components/raw.js.map +1 -1
  44. package/lib/cjs/components/reply.js +5 -8
  45. package/lib/cjs/components/reply.js.map +1 -1
  46. package/lib/cjs/components/share-button.js +2 -3
  47. package/lib/cjs/components/share-button.js.map +1 -1
  48. package/lib/cjs/components/subtitle.js +3 -4
  49. package/lib/cjs/components/subtitle.js.map +1 -1
  50. package/lib/cjs/components/text.js +3 -6
  51. package/lib/cjs/components/text.js.map +1 -1
  52. package/lib/cjs/components/timestamps.js +2 -5
  53. package/lib/cjs/components/timestamps.js.map +1 -1
  54. package/lib/cjs/components/title.js +3 -2
  55. package/lib/cjs/components/title.js.map +1 -1
  56. package/lib/cjs/components/video.js +3 -6
  57. package/lib/cjs/components/video.js.map +1 -1
  58. package/lib/cjs/components/webchat-settings.js +2 -1
  59. package/lib/cjs/components/webchat-settings.js.map +1 -1
  60. package/lib/cjs/components/whatsapp-template.js +3 -4
  61. package/lib/cjs/components/whatsapp-template.js.map +1 -1
  62. package/lib/cjs/contexts.d.ts +1 -1
  63. package/lib/cjs/dev-app.d.ts +2 -2
  64. package/lib/cjs/dev-app.js +2 -1
  65. package/lib/cjs/dev-app.js.map +1 -1
  66. package/lib/cjs/message-utils.d.ts +1 -1
  67. package/lib/cjs/msg-to-botonic.d.ts +1 -1
  68. package/lib/cjs/msg-to-botonic.js +24 -46
  69. package/lib/cjs/msg-to-botonic.js.map +1 -1
  70. package/lib/cjs/node-app.d.ts +1 -1
  71. package/lib/cjs/react-bot.d.ts +1 -1
  72. package/lib/cjs/react-bot.js +3 -4
  73. package/lib/cjs/react-bot.js.map +1 -1
  74. package/lib/cjs/util/error-boundary.d.ts +6 -39
  75. package/lib/cjs/util/error-boundary.js +17 -30
  76. package/lib/cjs/util/error-boundary.js.map +1 -1
  77. package/lib/cjs/util/webchat.js.map +1 -1
  78. package/lib/cjs/webchat/components/attachment.js +7 -10
  79. package/lib/cjs/webchat/components/attachment.js.map +1 -1
  80. package/lib/cjs/webchat/components/common.js +2 -1
  81. package/lib/cjs/webchat/components/common.js.map +1 -1
  82. package/lib/cjs/webchat/components/conditional-animation.js +2 -3
  83. package/lib/cjs/webchat/components/conditional-animation.js.map +1 -1
  84. package/lib/cjs/webchat/components/emoji-picker.js +3 -12
  85. package/lib/cjs/webchat/components/emoji-picker.js.map +1 -1
  86. package/lib/cjs/webchat/components/persistent-menu.js +5 -19
  87. package/lib/cjs/webchat/components/persistent-menu.js.map +1 -1
  88. package/lib/cjs/webchat/components/send-button.js +2 -7
  89. package/lib/cjs/webchat/components/send-button.js.map +1 -1
  90. package/lib/cjs/webchat/components/typing-indicator.js +2 -5
  91. package/lib/cjs/webchat/components/typing-indicator.js.map +1 -1
  92. package/lib/cjs/webchat/devices/device-adapter.d.ts +2 -2
  93. package/lib/cjs/webchat/header.js +4 -14
  94. package/lib/cjs/webchat/header.js.map +1 -1
  95. package/lib/cjs/webchat/hooks.js +2 -1
  96. package/lib/cjs/webchat/hooks.js.map +1 -1
  97. package/lib/cjs/webchat/message-list.js +5 -12
  98. package/lib/cjs/webchat/message-list.js.map +1 -1
  99. package/lib/cjs/webchat/replies.js +2 -5
  100. package/lib/cjs/webchat/replies.js.map +1 -1
  101. package/lib/cjs/webchat/session-view.js +7 -30
  102. package/lib/cjs/webchat/session-view.js.map +1 -1
  103. package/lib/cjs/webchat/use-storage-state-hook.js +12 -2
  104. package/lib/cjs/webchat/use-storage-state-hook.js.map +1 -1
  105. package/lib/cjs/webchat/webchat-dev.d.ts +1 -1
  106. package/lib/cjs/webchat/webchat-dev.js +6 -10
  107. package/lib/cjs/webchat/webchat-dev.js.map +1 -1
  108. package/lib/cjs/webchat/webchat.d.ts +1 -1
  109. package/lib/cjs/webchat/webchat.js +43 -86
  110. package/lib/cjs/webchat/webchat.js.map +1 -1
  111. package/lib/cjs/webchat/webview.js +5 -13
  112. package/lib/cjs/webchat/webview.js.map +1 -1
  113. package/lib/cjs/webchat-app.d.ts +2 -2
  114. package/lib/cjs/webchat-app.js +2 -1
  115. package/lib/cjs/webchat-app.js.map +1 -1
  116. package/lib/cjs/webview-app.js +12 -13
  117. package/lib/cjs/webview-app.js.map +1 -1
  118. package/lib/esm/botonic-tester.js +4 -6
  119. package/lib/esm/botonic-tester.js.map +1 -1
  120. package/lib/esm/components/audio.js +3 -7
  121. package/lib/esm/components/audio.js.map +1 -1
  122. package/lib/esm/components/button.js +7 -18
  123. package/lib/esm/components/button.js.map +1 -1
  124. package/lib/esm/components/carousel.js +6 -19
  125. package/lib/esm/components/carousel.js.map +1 -1
  126. package/lib/esm/components/custom-message.d.ts +3 -34
  127. package/lib/esm/components/custom-message.js +4 -10
  128. package/lib/esm/components/custom-message.js.map +1 -1
  129. package/lib/esm/components/document.js +3 -6
  130. package/lib/esm/components/document.js.map +1 -1
  131. package/lib/esm/components/element.js +3 -2
  132. package/lib/esm/components/element.js.map +1 -1
  133. package/lib/esm/components/handoff.js +3 -7
  134. package/lib/esm/components/handoff.js.map +1 -1
  135. package/lib/esm/components/image.js +3 -7
  136. package/lib/esm/components/image.js.map +1 -1
  137. package/lib/esm/components/location.js +3 -9
  138. package/lib/esm/components/location.js.map +1 -1
  139. package/lib/esm/components/message-template.js +2 -3
  140. package/lib/esm/components/message-template.js.map +1 -1
  141. package/lib/esm/components/message.js +9 -27
  142. package/lib/esm/components/message.js.map +1 -1
  143. package/lib/esm/components/multichannel/index.d.ts +5 -5
  144. package/lib/esm/components/multichannel/multichannel-button.js +4 -5
  145. package/lib/esm/components/multichannel/multichannel-button.js.map +1 -1
  146. package/lib/esm/components/multichannel/multichannel-carousel.js +3 -20
  147. package/lib/esm/components/multichannel/multichannel-carousel.js.map +1 -1
  148. package/lib/esm/components/multichannel/multichannel-context.d.ts +1 -1
  149. package/lib/esm/components/multichannel/multichannel-reply.js +2 -1
  150. package/lib/esm/components/multichannel/multichannel-reply.js.map +1 -1
  151. package/lib/esm/components/multichannel/multichannel-text.d.ts +1 -1
  152. package/lib/esm/components/multichannel/multichannel-text.js +10 -25
  153. package/lib/esm/components/multichannel/multichannel-text.js.map +1 -1
  154. package/lib/esm/components/multichannel/multichannel.js +11 -23
  155. package/lib/esm/components/multichannel/multichannel.js.map +1 -1
  156. package/lib/esm/components/pic.js +3 -2
  157. package/lib/esm/components/pic.js.map +1 -1
  158. package/lib/esm/components/raw.js +3 -12
  159. package/lib/esm/components/raw.js.map +1 -1
  160. package/lib/esm/components/reply.js +5 -8
  161. package/lib/esm/components/reply.js.map +1 -1
  162. package/lib/esm/components/share-button.js +2 -3
  163. package/lib/esm/components/share-button.js.map +1 -1
  164. package/lib/esm/components/subtitle.js +3 -4
  165. package/lib/esm/components/subtitle.js.map +1 -1
  166. package/lib/esm/components/text.js +3 -6
  167. package/lib/esm/components/text.js.map +1 -1
  168. package/lib/esm/components/timestamps.js +2 -5
  169. package/lib/esm/components/timestamps.js.map +1 -1
  170. package/lib/esm/components/title.js +3 -2
  171. package/lib/esm/components/title.js.map +1 -1
  172. package/lib/esm/components/video.js +3 -6
  173. package/lib/esm/components/video.js.map +1 -1
  174. package/lib/esm/components/webchat-settings.js +2 -1
  175. package/lib/esm/components/webchat-settings.js.map +1 -1
  176. package/lib/esm/components/whatsapp-template.js +3 -4
  177. package/lib/esm/components/whatsapp-template.js.map +1 -1
  178. package/lib/esm/contexts.d.ts +1 -1
  179. package/lib/esm/dev-app.d.ts +2 -2
  180. package/lib/esm/dev-app.js +2 -1
  181. package/lib/esm/dev-app.js.map +1 -1
  182. package/lib/esm/msg-to-botonic.d.ts +1 -1
  183. package/lib/esm/msg-to-botonic.js +23 -45
  184. package/lib/esm/msg-to-botonic.js.map +1 -1
  185. package/lib/esm/node-app.d.ts +1 -1
  186. package/lib/esm/react-bot.js +3 -4
  187. package/lib/esm/react-bot.js.map +1 -1
  188. package/lib/esm/util/error-boundary.d.ts +6 -39
  189. package/lib/esm/util/error-boundary.js +17 -30
  190. package/lib/esm/util/error-boundary.js.map +1 -1
  191. package/lib/esm/util/webchat.js.map +1 -1
  192. package/lib/esm/webchat/components/attachment.js +8 -11
  193. package/lib/esm/webchat/components/attachment.js.map +1 -1
  194. package/lib/esm/webchat/components/common.js +2 -1
  195. package/lib/esm/webchat/components/common.js.map +1 -1
  196. package/lib/esm/webchat/components/conditional-animation.js +2 -3
  197. package/lib/esm/webchat/components/conditional-animation.js.map +1 -1
  198. package/lib/esm/webchat/components/emoji-picker.js +3 -12
  199. package/lib/esm/webchat/components/emoji-picker.js.map +1 -1
  200. package/lib/esm/webchat/components/persistent-menu.js +5 -19
  201. package/lib/esm/webchat/components/persistent-menu.js.map +1 -1
  202. package/lib/esm/webchat/components/send-button.js +2 -7
  203. package/lib/esm/webchat/components/send-button.js.map +1 -1
  204. package/lib/esm/webchat/components/typing-indicator.js +2 -5
  205. package/lib/esm/webchat/components/typing-indicator.js.map +1 -1
  206. package/lib/esm/webchat/devices/device-adapter.d.ts +2 -2
  207. package/lib/esm/webchat/header.js +4 -14
  208. package/lib/esm/webchat/header.js.map +1 -1
  209. package/lib/esm/webchat/hooks.js +2 -1
  210. package/lib/esm/webchat/hooks.js.map +1 -1
  211. package/lib/esm/webchat/message-list.js +5 -12
  212. package/lib/esm/webchat/message-list.js.map +1 -1
  213. package/lib/esm/webchat/replies.js +2 -5
  214. package/lib/esm/webchat/replies.js.map +1 -1
  215. package/lib/esm/webchat/session-view.js +7 -30
  216. package/lib/esm/webchat/session-view.js.map +1 -1
  217. package/lib/esm/webchat/use-storage-state-hook.js +12 -2
  218. package/lib/esm/webchat/use-storage-state-hook.js.map +1 -1
  219. package/lib/esm/webchat/webchat-dev.d.ts +1 -1
  220. package/lib/esm/webchat/webchat-dev.js +6 -10
  221. package/lib/esm/webchat/webchat-dev.js.map +1 -1
  222. package/lib/esm/webchat/webchat.d.ts +1 -1
  223. package/lib/esm/webchat/webchat.js +43 -86
  224. package/lib/esm/webchat/webchat.js.map +1 -1
  225. package/lib/esm/webchat/webview.js +5 -13
  226. package/lib/esm/webchat/webview.js.map +1 -1
  227. package/lib/esm/webchat-app.d.ts +1 -1
  228. package/lib/esm/webchat-app.js +2 -1
  229. package/lib/esm/webchat-app.js.map +1 -1
  230. package/lib/esm/webview-app.js +5 -6
  231. package/lib/esm/webview-app.js.map +1 -1
  232. package/package.json +21 -15
  233. package/src/components/message.jsx +4 -11
  234. package/src/components/multichannel/multichannel-text.jsx +2 -5
  235. package/src/msg-to-botonic.jsx +11 -11
  236. package/src/util/error-boundary.jsx +15 -30
  237. package/src/util/webchat.js +12 -13
  238. package/src/webchat/components/attachment.jsx +10 -2
  239. package/src/webchat/components/emoji-picker.jsx +7 -1
  240. package/src/webchat/hooks.js +2 -1
  241. package/src/webchat/use-storage-state-hook.js +13 -2
  242. package/src/webchat/webchat.jsx +5 -7
  243. package/src/webview-app.tsx +1 -1
@@ -247,7 +247,8 @@ export function useComponentVisible(initialIsVisible, onClickOutside) {
247
247
  const [isComponentVisible, setIsComponentVisible] = useState(initialIsVisible)
248
248
  const ref = useRef(null)
249
249
  const handleClickOutside = event => {
250
- if (ref.current && !ref.current.contains(event.path[0])) {
250
+ const target = event.path ? event.path[0] : event.target
251
+ if (ref.current && !ref.current.contains(target)) {
251
252
  setIsComponentVisible(false)
252
253
  onClickOutside()
253
254
  }
@@ -1,9 +1,20 @@
1
1
  import { useCallback, useEffect, useState } from 'react'
2
2
 
3
- //Code taken from https://github.com/leny/react-use-storage
4
- const evtTarget = new EventTarget()
3
+ // Code taken from https://github.com/leny/react-use-storage/blob/master/src/index.js
4
+ const IS_BROWSER =
5
+ typeof window !== 'undefined' &&
6
+ typeof navigator !== 'undefined' &&
7
+ typeof document !== 'undefined'
5
8
 
6
9
  export function useStorageState(storage, key, defaultValue) {
10
+ let evtTarget
11
+
12
+ try {
13
+ evtTarget = new EventTarget()
14
+ } catch {
15
+ evtTarget = (IS_BROWSER ? document : {})?.createElement?.('phony')
16
+ }
17
+
7
18
  const raw = storage?.getItem(key)
8
19
 
9
20
  const [value, setValue] = useState(raw ? JSON.parse(raw) : defaultValue)
@@ -1,5 +1,4 @@
1
1
  import { INPUT, isMobile, params2queryString } from '@botonic/core'
2
- import { motion } from 'framer-motion'
3
2
  import merge from 'lodash.merge'
4
3
  import React, {
5
4
  forwardRef,
@@ -161,7 +160,7 @@ const DarkBackgroundMenu = styled.div`
161
160
  height: 100%;
162
161
  `
163
162
 
164
- // eslint-disable-next-line complexity
163
+ // eslint-disable-next-line complexity, react/display-name
165
164
  export const Webchat = forwardRef((props, ref) => {
166
165
  const {
167
166
  webchatState,
@@ -372,8 +371,8 @@ export const Webchat = forwardRef((props, ref) => {
372
371
  const openWebview = (webviewComponent, params) =>
373
372
  updateWebview(webviewComponent, params)
374
373
 
375
- const handleSelectedEmoji = (event, emojiObject) => {
376
- textArea.current.value += emojiObject.emoji
374
+ const handleSelectedEmoji = event => {
375
+ textArea.current.value += event.emoji
377
376
  textArea.current.focus()
378
377
  }
379
378
 
@@ -712,8 +711,6 @@ export const Webchat = forwardRef((props, ref) => {
712
711
  }
713
712
  }, [webchatState.isWebchatOpen])
714
713
 
715
- const textArea = useRef()
716
-
717
714
  const getTriggerImage = () => {
718
715
  const triggerImage = getThemeProperty(
719
716
  WEBCHAT.CUSTOM_PROPERTIES.triggerButtonImage,
@@ -768,6 +765,7 @@ export const Webchat = forwardRef((props, ref) => {
768
765
 
769
766
  const userInputEnabled = isUserInputEnabled()
770
767
 
768
+ const textArea = useRef(null)
771
769
  const userInputArea = () => {
772
770
  return (
773
771
  userInputEnabled && (
@@ -792,6 +790,7 @@ export const Webchat = forwardRef((props, ref) => {
792
790
 
793
791
  <TextAreaContainer>
794
792
  <Textarea
793
+ inputRef={textArea}
795
794
  name='text'
796
795
  onFocus={() => deviceAdapter.onFocus(host)}
797
796
  onBlur={() => deviceAdapter.onBlur()}
@@ -803,7 +802,6 @@ export const Webchat = forwardRef((props, ref) => {
803
802
  WEBCHAT.DEFAULTS.PLACEHOLDER
804
803
  )}
805
804
  autoFocus={true}
806
- inputRef={textArea}
807
805
  onKeyDown={e => onKeyDown(e)}
808
806
  onKeyUp={onKeyUp}
809
807
  style={{
@@ -1,6 +1,6 @@
1
1
  // @ts-nocheck
2
- import type { PROVIDER } from '@botonic/core'
3
2
  import { getString } from '@botonic/core/lib/esm/i18n'
3
+ import { PROVIDER } from '@botonic/core/lib/esm/models/legacy-types'
4
4
  import { params2queryString } from '@botonic/core/lib/esm/utils'
5
5
  import axios from 'axios'
6
6
  import React from 'react'