@botonic/react 0.22.0-alpha.0 → 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.
- package/lib/cjs/app.d.ts +2 -0
- package/lib/cjs/app.js +10 -0
- package/lib/cjs/app.js.map +1 -0
- package/lib/cjs/botonic-tester.d.ts +18 -0
- package/lib/cjs/botonic-tester.js +68 -0
- package/lib/cjs/botonic-tester.js.map +1 -0
- package/lib/cjs/components/audio.d.ts +8 -0
- package/lib/cjs/components/audio.js +23 -0
- package/lib/cjs/components/audio.js.map +1 -0
- package/lib/cjs/components/button.d.ts +15 -0
- package/lib/cjs/components/button.js +145 -0
- package/lib/cjs/components/button.js.map +1 -0
- package/lib/cjs/components/buttons-disabler.d.ts +24 -0
- package/lib/cjs/components/buttons-disabler.js +88 -0
- package/lib/cjs/components/buttons-disabler.js.map +1 -0
- package/lib/cjs/components/carousel.d.ts +10 -0
- package/lib/cjs/components/carousel.js +107 -0
- package/lib/cjs/components/carousel.js.map +1 -0
- package/lib/cjs/components/components.d.ts +12 -0
- package/lib/{components → cjs/components}/components.js +6 -11
- package/lib/cjs/components/components.js.map +1 -0
- package/lib/cjs/components/custom-message.d.ts +12 -0
- package/lib/cjs/components/custom-message.js +59 -0
- package/lib/cjs/components/custom-message.js.map +1 -0
- package/lib/cjs/components/document.d.ts +8 -0
- package/lib/cjs/components/document.js +47 -0
- package/lib/cjs/components/document.js.map +1 -0
- package/lib/cjs/components/element.d.ts +4 -0
- package/lib/cjs/components/element.js +56 -0
- package/lib/cjs/components/element.js.map +1 -0
- package/lib/cjs/components/handoff.d.ts +1 -0
- package/lib/cjs/components/handoff.js +54 -0
- package/lib/cjs/components/handoff.js.map +1 -0
- package/lib/cjs/components/image.d.ts +8 -0
- package/lib/cjs/components/image.js +38 -0
- package/lib/cjs/components/image.js.map +1 -0
- package/lib/cjs/components/index.d.ts +20 -0
- package/lib/cjs/components/index.js +44 -0
- package/lib/cjs/components/index.js.map +1 -0
- package/lib/cjs/components/location.d.ts +11 -0
- package/lib/cjs/components/location.js +32 -0
- package/lib/cjs/components/location.js.map +1 -0
- package/lib/cjs/components/markdown.d.ts +7 -0
- package/lib/cjs/components/markdown.js +162 -0
- package/lib/cjs/components/markdown.js.map +1 -0
- package/lib/cjs/components/message-template.d.ts +1 -0
- package/lib/cjs/components/message-template.js +14 -0
- package/lib/cjs/components/message-template.js.map +1 -0
- package/lib/cjs/components/message.d.ts +1 -0
- package/lib/cjs/components/message.js +188 -0
- package/lib/cjs/components/message.js.map +1 -0
- package/lib/cjs/components/multichannel/facebook/facebook.d.ts +17 -0
- package/lib/cjs/components/multichannel/facebook/facebook.js +47 -0
- package/lib/cjs/components/multichannel/facebook/facebook.js.map +1 -0
- package/lib/cjs/components/multichannel/index.d.ts +6 -0
- package/lib/cjs/components/multichannel/index.js +14 -0
- package/lib/cjs/components/multichannel/index.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-button.d.ts +1 -0
- package/lib/cjs/components/multichannel/multichannel-button.js +76 -0
- package/lib/cjs/components/multichannel/multichannel-button.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-carousel.d.ts +1 -0
- package/lib/cjs/components/multichannel/multichannel-carousel.js +78 -0
- package/lib/cjs/components/multichannel/multichannel-carousel.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-context.d.ts +11 -0
- package/lib/cjs/components/multichannel/multichannel-context.js +16 -0
- package/lib/cjs/components/multichannel/multichannel-context.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-reply.d.ts +1 -0
- package/lib/cjs/components/multichannel/multichannel-reply.js +25 -0
- package/lib/cjs/components/multichannel/multichannel-reply.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-text.d.ts +1 -0
- package/lib/cjs/components/multichannel/multichannel-text.js +132 -0
- package/lib/cjs/components/multichannel/multichannel-text.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-utils.d.ts +24 -0
- package/lib/cjs/components/multichannel/multichannel-utils.js +83 -0
- package/lib/cjs/components/multichannel/multichannel-utils.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel.d.ts +1 -0
- package/lib/cjs/components/multichannel/multichannel.js +60 -0
- package/lib/cjs/components/multichannel/multichannel.js.map +1 -0
- package/lib/cjs/components/pic.d.ts +6 -0
- package/lib/cjs/components/pic.js +30 -0
- package/lib/cjs/components/pic.js.map +1 -0
- package/lib/cjs/components/raw.d.ts +9 -0
- package/lib/cjs/components/raw.js +44 -0
- package/lib/cjs/components/raw.js.map +1 -0
- package/lib/cjs/components/reply.d.ts +9 -0
- package/lib/cjs/components/reply.js +54 -0
- package/lib/cjs/components/reply.js.map +1 -0
- package/lib/cjs/components/share-button.d.ts +1 -0
- package/lib/cjs/components/share-button.js +14 -0
- package/lib/cjs/components/share-button.js.map +1 -0
- package/lib/cjs/components/subtitle.d.ts +6 -0
- package/lib/cjs/components/subtitle.js +24 -0
- package/lib/cjs/components/subtitle.js.map +1 -0
- package/lib/cjs/components/text.d.ts +8 -0
- package/lib/cjs/components/text.js +47 -0
- package/lib/cjs/components/text.js.map +1 -0
- package/lib/cjs/components/timestamps.d.ts +10 -0
- package/lib/cjs/components/timestamps.js +51 -0
- package/lib/cjs/components/timestamps.js.map +1 -0
- package/lib/cjs/components/title.d.ts +6 -0
- package/lib/cjs/components/title.js +22 -0
- package/lib/cjs/components/title.js.map +1 -0
- package/lib/cjs/components/video.d.ts +8 -0
- package/lib/cjs/components/video.js +31 -0
- package/lib/cjs/components/video.js.map +1 -0
- package/lib/cjs/components/webchat-settings.d.ts +10 -0
- package/lib/cjs/components/webchat-settings.js +79 -0
- package/lib/cjs/components/webchat-settings.js.map +1 -0
- package/lib/cjs/components/whatsapp-template.d.ts +1 -0
- package/lib/cjs/components/whatsapp-template.js +25 -0
- package/lib/cjs/components/whatsapp-template.js.map +1 -0
- package/lib/cjs/constants.d.ts +168 -0
- package/lib/cjs/constants.js +190 -0
- package/lib/cjs/constants.js.map +1 -0
- package/lib/cjs/contexts.d.ts +69 -0
- package/lib/cjs/contexts.js +38 -0
- package/lib/cjs/contexts.js.map +1 -0
- package/lib/cjs/dev-app.d.ts +30 -0
- package/lib/cjs/dev-app.js +72 -0
- package/lib/cjs/dev-app.js.map +1 -0
- package/lib/cjs/index.d.ts +10 -0
- package/lib/cjs/index.js +28 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/message-utils.d.ts +19 -0
- package/lib/cjs/message-utils.js +61 -0
- package/lib/cjs/message-utils.js.map +1 -0
- package/lib/cjs/msg-to-botonic.d.ts +18 -0
- package/lib/cjs/msg-to-botonic.js +138 -0
- package/lib/cjs/msg-to-botonic.js.map +1 -0
- package/lib/cjs/node-app.d.ts +12 -0
- package/lib/cjs/node-app.js +25 -0
- package/lib/cjs/node-app.js.map +1 -0
- package/lib/cjs/react-bot.d.ts +8 -0
- package/lib/cjs/react-bot.js +34 -0
- package/lib/cjs/react-bot.js.map +1 -0
- package/lib/cjs/util/dom.d.ts +13 -0
- package/lib/cjs/util/dom.js +55 -0
- package/lib/cjs/util/dom.js.map +1 -0
- package/lib/cjs/util/environment.d.ts +6 -0
- package/lib/cjs/util/environment.js +68 -0
- package/lib/cjs/util/environment.js.map +1 -0
- package/lib/cjs/util/error-boundary.d.ts +7 -0
- package/lib/cjs/util/error-boundary.js +33 -0
- package/lib/cjs/util/error-boundary.js.map +1 -0
- package/lib/cjs/util/index.d.ts +0 -0
- package/lib/cjs/util/index.js +2 -0
- package/lib/cjs/util/index.js.map +1 -0
- package/lib/cjs/util/logs.d.ts +2 -0
- package/lib/cjs/util/logs.js +20 -0
- package/lib/cjs/util/logs.js.map +1 -0
- package/lib/cjs/util/objects.d.ts +3 -0
- package/lib/cjs/util/objects.js +44 -0
- package/lib/cjs/util/objects.js.map +1 -0
- package/lib/cjs/util/react.d.ts +12 -0
- package/lib/cjs/util/react.js +42 -0
- package/lib/cjs/util/react.js.map +1 -0
- package/lib/cjs/util/regexs.d.ts +2 -0
- package/lib/cjs/util/regexs.js +23 -0
- package/lib/cjs/util/regexs.js.map +1 -0
- package/lib/cjs/util/webchat.d.ts +11 -0
- package/lib/cjs/util/webchat.js +62 -0
- package/lib/cjs/util/webchat.js.map +1 -0
- package/lib/cjs/webchat/actions.d.ts +23 -0
- package/lib/cjs/webchat/actions.js +27 -0
- package/lib/cjs/webchat/actions.js.map +1 -0
- package/lib/cjs/webchat/components/attachment.d.ts +5 -0
- package/lib/cjs/webchat/components/attachment.js +29 -0
- package/lib/cjs/webchat/components/attachment.js.map +1 -0
- package/lib/cjs/webchat/components/common.d.ts +1 -0
- package/lib/cjs/webchat/components/common.js +14 -0
- package/lib/cjs/webchat/components/common.js.map +1 -0
- package/lib/cjs/webchat/components/conditional-animation.d.ts +1 -0
- package/lib/cjs/webchat/components/conditional-animation.js +17 -0
- package/lib/cjs/webchat/components/conditional-animation.js.map +1 -0
- package/lib/cjs/webchat/components/emoji-picker.d.ts +5 -0
- package/lib/cjs/webchat/components/emoji-picker.js +43 -0
- package/lib/cjs/webchat/components/emoji-picker.js.map +1 -0
- package/lib/cjs/webchat/components/persistent-menu.d.ts +10 -0
- package/lib/cjs/webchat/components/persistent-menu.js +45 -0
- package/lib/cjs/webchat/components/persistent-menu.js.map +1 -0
- package/lib/cjs/webchat/components/send-button.d.ts +3 -0
- package/lib/cjs/webchat/components/send-button.js +19 -0
- package/lib/cjs/webchat/components/send-button.js.map +1 -0
- package/lib/cjs/webchat/components/styled-scrollbar.d.ts +1 -0
- package/lib/cjs/webchat/components/styled-scrollbar.js +54 -0
- package/lib/cjs/webchat/components/styled-scrollbar.js.map +1 -0
- package/lib/cjs/webchat/components/typing-indicator.d.ts +1 -0
- package/lib/cjs/webchat/components/typing-indicator.js +11 -0
- package/lib/cjs/webchat/components/typing-indicator.js.map +1 -0
- package/lib/cjs/webchat/devices/device-adapter.d.ts +12 -0
- package/lib/cjs/webchat/devices/device-adapter.js +47 -0
- package/lib/cjs/webchat/devices/device-adapter.js.map +1 -0
- package/lib/cjs/webchat/devices/index.d.ts +11 -0
- package/lib/cjs/webchat/devices/index.js +23 -0
- package/lib/cjs/webchat/devices/index.js.map +1 -0
- package/lib/cjs/webchat/devices/scrollbar-controller.d.ts +12 -0
- package/lib/cjs/webchat/devices/scrollbar-controller.js +103 -0
- package/lib/cjs/webchat/devices/scrollbar-controller.js.map +1 -0
- package/lib/cjs/webchat/devices/webchat-resizer.d.ts +9 -0
- package/lib/cjs/webchat/devices/webchat-resizer.js +47 -0
- package/lib/cjs/webchat/devices/webchat-resizer.js.map +1 -0
- package/lib/cjs/webchat/header.d.ts +3 -0
- package/lib/cjs/webchat/header.js +85 -0
- package/lib/cjs/webchat/header.js.map +1 -0
- package/lib/cjs/webchat/hooks.d.ts +80 -0
- package/lib/cjs/webchat/hooks.js +219 -0
- package/lib/cjs/webchat/hooks.js.map +1 -0
- package/lib/cjs/webchat/index.d.ts +6 -0
- package/lib/cjs/webchat/index.js +17 -0
- package/lib/cjs/webchat/index.js.map +1 -0
- package/lib/cjs/webchat/message-list.d.ts +1 -0
- package/lib/cjs/webchat/message-list.js +39 -0
- package/lib/cjs/webchat/message-list.js.map +1 -0
- package/lib/cjs/webchat/messages-reducer.d.ts +1 -0
- package/lib/cjs/webchat/messages-reducer.js +58 -0
- package/lib/cjs/webchat/messages-reducer.js.map +1 -0
- package/lib/cjs/webchat/replies.d.ts +1 -0
- package/lib/cjs/webchat/replies.js +43 -0
- package/lib/cjs/webchat/replies.js.map +1 -0
- package/lib/cjs/webchat/session-view.d.ts +1 -0
- package/lib/cjs/webchat/session-view.js +101 -0
- package/lib/cjs/webchat/session-view.js.map +1 -0
- package/lib/cjs/webchat/use-storage-state-hook.d.ts +1 -0
- package/lib/cjs/webchat/use-storage-state-hook.js +42 -0
- package/lib/cjs/webchat/use-storage-state-hook.js.map +1 -0
- package/lib/cjs/webchat/webchat-dev.d.ts +7 -0
- package/lib/cjs/webchat/webchat-dev.js +60 -0
- package/lib/cjs/webchat/webchat-dev.js.map +1 -0
- package/lib/cjs/webchat/webchat-reducer.d.ts +1 -0
- package/lib/cjs/webchat/webchat-reducer.js +48 -0
- package/lib/cjs/webchat/webchat-reducer.js.map +1 -0
- package/lib/cjs/webchat/webchat.d.ts +3 -0
- package/lib/cjs/webchat/webchat.js +661 -0
- package/lib/cjs/webchat/webchat.js.map +1 -0
- package/lib/cjs/webchat/webview.d.ts +2 -0
- package/lib/cjs/webchat/webview.js +84 -0
- package/lib/cjs/webchat/webview.js.map +1 -0
- package/lib/cjs/webchat-app.d.ts +99 -0
- package/lib/cjs/webchat-app.js +270 -0
- package/lib/cjs/webchat-app.js.map +1 -0
- package/lib/cjs/webview-app.d.ts +7 -0
- package/lib/cjs/webview-app.js +102 -0
- package/lib/cjs/webview-app.js.map +1 -0
- package/lib/esm/app.d.ts +2 -0
- package/lib/esm/app.js +6 -0
- package/lib/esm/app.js.map +1 -0
- package/lib/esm/assets/attachment-icon.svg +7 -0
- package/lib/esm/assets/audio.svg +4 -0
- package/lib/esm/assets/botonic_react_logo100x100.png +0 -0
- package/lib/esm/assets/document.svg +3 -0
- package/lib/esm/assets/emojiButton.svg +6 -0
- package/lib/esm/assets/image.svg +4 -0
- package/lib/esm/assets/leftArrow.svg +3 -0
- package/lib/esm/assets/menuButton.svg +3 -0
- package/lib/esm/assets/rightArrow.svg +3 -0
- package/lib/esm/assets/send-button.svg +1 -0
- package/lib/esm/assets/video.svg +3 -0
- package/lib/esm/botonic-tester.d.ts +18 -0
- package/lib/esm/botonic-tester.js +62 -0
- package/lib/esm/botonic-tester.js.map +1 -0
- package/lib/esm/components/audio.d.ts +8 -0
- package/lib/esm/components/audio.js +18 -0
- package/lib/esm/components/audio.js.map +1 -0
- package/lib/esm/components/button.d.ts +15 -0
- package/lib/esm/components/button.js +140 -0
- package/lib/esm/components/button.js.map +1 -0
- package/lib/esm/components/buttons-disabler.d.ts +24 -0
- package/lib/esm/components/buttons-disabler.js +84 -0
- package/lib/esm/components/buttons-disabler.js.map +1 -0
- package/lib/esm/components/carousel.d.ts +9 -0
- package/lib/esm/components/carousel.js +102 -0
- package/lib/esm/components/carousel.js.map +1 -0
- package/lib/esm/components/components.d.ts +12 -0
- package/lib/esm/components/components.js +17 -0
- package/lib/esm/components/components.js.map +1 -0
- package/lib/esm/components/custom-message.d.ts +12 -0
- package/lib/esm/components/custom-message.js +55 -0
- package/lib/esm/components/custom-message.js.map +1 -0
- package/lib/esm/components/document.d.ts +8 -0
- package/lib/esm/components/document.js +42 -0
- package/lib/esm/components/document.js.map +1 -0
- package/lib/esm/components/element.d.ts +4 -0
- package/lib/esm/components/element.js +51 -0
- package/lib/esm/components/element.js.map +1 -0
- package/lib/esm/components/handoff.d.ts +1 -0
- package/lib/esm/components/handoff.js +49 -0
- package/lib/esm/components/handoff.js.map +1 -0
- package/lib/esm/components/image.d.ts +8 -0
- package/lib/esm/components/image.js +33 -0
- package/lib/esm/components/image.js.map +1 -0
- package/lib/esm/components/index.d.ts +19 -0
- package/lib/esm/components/index.js +21 -0
- package/lib/esm/components/index.js.map +1 -0
- package/lib/esm/components/location.d.ts +11 -0
- package/lib/esm/components/location.js +27 -0
- package/lib/esm/components/location.js.map +1 -0
- package/lib/esm/components/markdown.d.ts +7 -0
- package/lib/esm/components/markdown.js +152 -0
- package/lib/esm/components/markdown.js.map +1 -0
- package/lib/esm/components/message-template.d.ts +1 -0
- package/lib/esm/components/message-template.js +9 -0
- package/lib/esm/components/message-template.js.map +1 -0
- package/lib/esm/components/message.d.ts +1 -0
- package/lib/esm/components/message.js +184 -0
- package/lib/esm/components/message.js.map +1 -0
- package/lib/esm/components/multichannel/facebook/facebook.d.ts +17 -0
- package/lib/esm/components/multichannel/facebook/facebook.js +43 -0
- package/lib/esm/components/multichannel/facebook/facebook.js.map +1 -0
- package/lib/esm/components/multichannel/index.d.ts +6 -0
- package/lib/esm/components/multichannel/index.js +11 -0
- package/lib/esm/components/multichannel/index.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-button.d.ts +1 -0
- package/lib/esm/components/multichannel/multichannel-button.js +71 -0
- package/lib/esm/components/multichannel/multichannel-button.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-carousel.d.ts +1 -0
- package/lib/esm/components/multichannel/multichannel-carousel.js +73 -0
- package/lib/esm/components/multichannel/multichannel-carousel.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-context.d.ts +11 -0
- package/lib/esm/components/multichannel/multichannel-context.js +12 -0
- package/lib/esm/components/multichannel/multichannel-context.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-reply.d.ts +1 -0
- package/lib/esm/components/multichannel/multichannel-reply.js +20 -0
- package/lib/esm/components/multichannel/multichannel-reply.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-text.d.ts +1 -0
- package/lib/esm/components/multichannel/multichannel-text.js +127 -0
- package/lib/esm/components/multichannel/multichannel-text.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-utils.d.ts +24 -0
- package/lib/esm/components/multichannel/multichannel-utils.js +67 -0
- package/lib/esm/components/multichannel/multichannel-utils.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel.d.ts +1 -0
- package/lib/esm/components/multichannel/multichannel.js +55 -0
- package/lib/esm/components/multichannel/multichannel.js.map +1 -0
- package/lib/esm/components/pic.d.ts +6 -0
- package/lib/esm/components/pic.js +25 -0
- package/lib/esm/components/pic.js.map +1 -0
- package/lib/esm/components/raw.d.ts +9 -0
- package/lib/esm/components/raw.js +39 -0
- package/lib/esm/components/raw.js.map +1 -0
- package/lib/esm/components/reply.d.ts +9 -0
- package/lib/esm/components/reply.js +49 -0
- package/lib/esm/components/reply.js.map +1 -0
- package/lib/esm/components/share-button.d.ts +1 -0
- package/lib/esm/components/share-button.js +9 -0
- package/lib/esm/components/share-button.js.map +1 -0
- package/lib/esm/components/subtitle.d.ts +6 -0
- package/lib/esm/components/subtitle.js +19 -0
- package/lib/esm/components/subtitle.js.map +1 -0
- package/lib/esm/components/text.d.ts +8 -0
- package/lib/esm/components/text.js +42 -0
- package/lib/esm/components/text.js.map +1 -0
- package/lib/esm/components/timestamps.d.ts +10 -0
- package/lib/esm/components/timestamps.js +45 -0
- package/lib/esm/components/timestamps.js.map +1 -0
- package/lib/esm/components/title.d.ts +6 -0
- package/lib/esm/components/title.js +17 -0
- package/lib/esm/components/title.js.map +1 -0
- package/lib/esm/components/video.d.ts +8 -0
- package/lib/esm/components/video.js +26 -0
- package/lib/esm/components/video.js.map +1 -0
- package/lib/esm/components/webchat-settings.d.ts +10 -0
- package/lib/esm/components/webchat-settings.js +73 -0
- package/lib/esm/components/webchat-settings.js.map +1 -0
- package/lib/esm/components/whatsapp-template.d.ts +1 -0
- package/lib/esm/components/whatsapp-template.js +20 -0
- package/lib/esm/components/whatsapp-template.js.map +1 -0
- package/lib/esm/constants.d.ts +168 -0
- package/lib/esm/constants.js +186 -0
- package/lib/esm/constants.js.map +1 -0
- package/lib/esm/contexts.d.ts +69 -0
- package/lib/esm/contexts.js +34 -0
- package/lib/esm/contexts.js.map +1 -0
- package/lib/esm/dev-app.d.ts +30 -0
- package/lib/esm/dev-app.js +68 -0
- package/lib/esm/dev-app.js.map +1 -0
- package/lib/esm/index.d.ts +9 -0
- package/lib/esm/index.js +11 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/message-utils.d.ts +18 -0
- package/lib/esm/message-utils.js +41 -0
- package/lib/esm/message-utils.js.map +1 -0
- package/lib/esm/msg-to-botonic.d.ts +18 -0
- package/lib/esm/msg-to-botonic.js +132 -0
- package/lib/esm/msg-to-botonic.js.map +1 -0
- package/lib/esm/node-app.d.ts +12 -0
- package/lib/esm/node-app.js +21 -0
- package/lib/esm/node-app.js.map +1 -0
- package/lib/esm/react-bot.d.ts +7 -0
- package/lib/esm/react-bot.js +29 -0
- package/lib/esm/react-bot.js.map +1 -0
- package/lib/esm/util/dom.d.ts +13 -0
- package/lib/esm/util/dom.js +46 -0
- package/lib/esm/util/dom.js.map +1 -0
- package/lib/esm/util/environment.d.ts +6 -0
- package/lib/esm/util/environment.js +61 -0
- package/lib/esm/util/environment.js.map +1 -0
- package/lib/esm/util/error-boundary.d.ts +7 -0
- package/lib/esm/util/error-boundary.js +28 -0
- package/lib/esm/util/error-boundary.js.map +1 -0
- package/lib/esm/util/index.d.ts +0 -0
- package/lib/esm/util/index.js +2 -0
- package/lib/esm/util/index.js.map +1 -0
- package/lib/esm/util/logs.d.ts +2 -0
- package/lib/esm/util/logs.js +15 -0
- package/lib/esm/util/logs.js.map +1 -0
- package/lib/esm/util/objects.d.ts +3 -0
- package/lib/esm/util/objects.js +38 -0
- package/lib/esm/util/objects.js.map +1 -0
- package/lib/esm/util/react.d.ts +12 -0
- package/lib/esm/util/react.js +34 -0
- package/lib/esm/util/react.js.map +1 -0
- package/lib/esm/util/regexs.d.ts +2 -0
- package/lib/esm/util/regexs.js +18 -0
- package/lib/esm/util/regexs.js.map +1 -0
- package/lib/esm/util/webchat.d.ts +11 -0
- package/lib/esm/util/webchat.js +53 -0
- package/lib/esm/util/webchat.js.map +1 -0
- package/lib/esm/webchat/actions.d.ts +23 -0
- package/lib/esm/webchat/actions.js +24 -0
- package/lib/esm/webchat/actions.js.map +1 -0
- package/lib/esm/webchat/components/attachment.d.ts +5 -0
- package/lib/esm/webchat/components/attachment.js +24 -0
- package/lib/esm/webchat/components/attachment.js.map +1 -0
- package/lib/esm/webchat/components/common.d.ts +1 -0
- package/lib/esm/webchat/components/common.js +9 -0
- package/lib/esm/webchat/components/common.js.map +1 -0
- package/lib/esm/webchat/components/conditional-animation.d.ts +1 -0
- package/lib/esm/webchat/components/conditional-animation.js +12 -0
- package/lib/esm/webchat/components/conditional-animation.js.map +1 -0
- package/lib/esm/webchat/components/emoji-picker.d.ts +5 -0
- package/lib/esm/webchat/components/emoji-picker.js +37 -0
- package/lib/esm/webchat/components/emoji-picker.js.map +1 -0
- package/lib/esm/webchat/components/persistent-menu.d.ts +10 -0
- package/lib/esm/webchat/components/persistent-menu.js +39 -0
- package/lib/esm/webchat/components/persistent-menu.js.map +1 -0
- package/lib/esm/webchat/components/send-button.d.ts +3 -0
- package/lib/esm/webchat/components/send-button.js +14 -0
- package/lib/esm/webchat/components/send-button.js.map +1 -0
- package/lib/esm/webchat/components/styled-scrollbar.d.ts +1 -0
- package/lib/esm/webchat/components/styled-scrollbar.js +50 -0
- package/lib/esm/webchat/components/styled-scrollbar.js.map +1 -0
- package/lib/esm/webchat/components/styled-scrollbar.scss +12 -0
- package/lib/esm/webchat/components/typing-indicator.d.ts +1 -0
- package/lib/esm/webchat/components/typing-indicator.js +6 -0
- package/lib/esm/webchat/components/typing-indicator.js.map +1 -0
- package/lib/esm/webchat/components/typing-indicator.scss +38 -0
- package/lib/esm/webchat/devices/device-adapter.d.ts +12 -0
- package/lib/esm/webchat/devices/device-adapter.js +43 -0
- package/lib/esm/webchat/devices/device-adapter.js.map +1 -0
- package/lib/esm/webchat/devices/index.d.ts +11 -0
- package/lib/esm/webchat/devices/index.js +18 -0
- package/lib/esm/webchat/devices/index.js.map +1 -0
- package/lib/esm/webchat/devices/scrollbar-controller.d.ts +12 -0
- package/lib/esm/webchat/devices/scrollbar-controller.js +99 -0
- package/lib/esm/webchat/devices/scrollbar-controller.js.map +1 -0
- package/lib/esm/webchat/devices/webchat-resizer.d.ts +9 -0
- package/lib/esm/webchat/devices/webchat-resizer.js +43 -0
- package/lib/esm/webchat/devices/webchat-resizer.js.map +1 -0
- package/lib/esm/webchat/header.d.ts +3 -0
- package/lib/esm/webchat/header.js +79 -0
- package/lib/esm/webchat/header.js.map +1 -0
- package/lib/esm/webchat/hooks.d.ts +80 -0
- package/lib/esm/webchat/hooks.js +211 -0
- package/lib/esm/webchat/hooks.js.map +1 -0
- package/lib/esm/webchat/index.d.ts +6 -0
- package/lib/esm/webchat/index.js +11 -0
- package/lib/esm/webchat/index.js.map +1 -0
- package/lib/esm/webchat/message-list.d.ts +1 -0
- package/lib/esm/webchat/message-list.js +34 -0
- package/lib/esm/webchat/message-list.js.map +1 -0
- package/lib/esm/webchat/messages-reducer.d.ts +1 -0
- package/lib/esm/webchat/messages-reducer.js +54 -0
- package/lib/esm/webchat/messages-reducer.js.map +1 -0
- package/lib/esm/webchat/replies.d.ts +1 -0
- package/lib/esm/webchat/replies.js +38 -0
- package/lib/esm/webchat/replies.js.map +1 -0
- package/lib/esm/webchat/session-view.d.ts +1 -0
- package/lib/esm/webchat/session-view.js +96 -0
- package/lib/esm/webchat/session-view.js.map +1 -0
- package/lib/esm/webchat/use-storage-state-hook.d.ts +1 -0
- package/lib/esm/webchat/use-storage-state-hook.js +38 -0
- package/lib/esm/webchat/use-storage-state-hook.js.map +1 -0
- package/lib/esm/webchat/webchat-dev.d.ts +7 -0
- package/lib/esm/webchat/webchat-dev.js +56 -0
- package/lib/esm/webchat/webchat-dev.js.map +1 -0
- package/lib/esm/webchat/webchat-reducer.d.ts +1 -0
- package/lib/esm/webchat/webchat-reducer.js +44 -0
- package/lib/esm/webchat/webchat-reducer.js.map +1 -0
- package/lib/esm/webchat/webchat.d.ts +3 -0
- package/lib/esm/webchat/webchat.js +656 -0
- package/lib/esm/webchat/webchat.js.map +1 -0
- package/lib/esm/webchat/webview.d.ts +2 -0
- package/lib/esm/webchat/webview.js +78 -0
- package/lib/esm/webchat/webview.js.map +1 -0
- package/lib/esm/webchat-app.d.ts +98 -0
- package/lib/esm/webchat-app.js +266 -0
- package/lib/esm/webchat-app.js.map +1 -0
- package/lib/esm/webchat.template.html +37 -0
- package/lib/esm/webview-app.d.ts +7 -0
- package/lib/esm/webview-app.js +97 -0
- package/lib/esm/webview-app.js.map +1 -0
- package/lib/esm/webview.template.html +39 -0
- package/package.json +40 -27
- package/src/components/audio.jsx +2 -0
- package/src/components/document.jsx +2 -0
- package/src/components/image.jsx +2 -0
- package/src/components/location.jsx +2 -2
- package/src/components/message.jsx +4 -11
- package/src/components/multichannel/multichannel-text.jsx +2 -5
- package/src/components/pic.jsx +3 -1
- package/src/components/video.jsx +2 -0
- package/src/index.js +1 -1
- package/src/msg-to-botonic.jsx +11 -11
- package/src/util/environment.js +31 -2
- package/src/util/error-boundary.jsx +15 -30
- package/src/util/webchat.js +12 -13
- package/src/webchat/components/attachment.jsx +10 -2
- package/src/webchat/components/emoji-picker.jsx +7 -1
- package/src/webchat/hooks.js +2 -1
- package/src/webchat/use-storage-state-hook.js +13 -2
- package/src/webchat/webchat.jsx +5 -7
- package/src/{webview.jsx → webview-app.tsx} +7 -1
- package/lib/app.js +0 -19
- package/lib/app.js.map +0 -1
- package/lib/botonic-tester.js +0 -224
- package/lib/botonic-tester.js.map +0 -1
- package/lib/components/audio.js +0 -48
- package/lib/components/audio.js.map +0 -1
- package/lib/components/button.js +0 -224
- package/lib/components/button.js.map +0 -1
- package/lib/components/buttons-disabler.js +0 -133
- package/lib/components/buttons-disabler.js.map +0 -1
- package/lib/components/carousel.js +0 -194
- package/lib/components/carousel.js.map +0 -1
- package/lib/components/components.js.map +0 -1
- package/lib/components/custom-message.js +0 -131
- package/lib/components/custom-message.js.map +0 -1
- package/lib/components/document.js +0 -76
- package/lib/components/document.js.map +0 -1
- package/lib/components/element.js +0 -69
- package/lib/components/element.js.map +0 -1
- package/lib/components/handoff.js +0 -69
- package/lib/components/handoff.js.map +0 -1
- package/lib/components/image.js +0 -91
- package/lib/components/image.js.map +0 -1
- package/lib/components/index.d.ts +0 -228
- package/lib/components/index.js +0 -193
- package/lib/components/index.js.map +0 -1
- package/lib/components/location.js +0 -69
- package/lib/components/location.js.map +0 -1
- package/lib/components/markdown.js +0 -108
- package/lib/components/markdown.js.map +0 -1
- package/lib/components/message-template.js +0 -36
- package/lib/components/message-template.js.map +0 -1
- package/lib/components/message.js +0 -351
- package/lib/components/message.js.map +0 -1
- package/lib/components/multichannel/facebook/facebook.js +0 -96
- package/lib/components/multichannel/facebook/facebook.js.map +0 -1
- package/lib/components/multichannel/index.d.ts +0 -65
- package/lib/components/multichannel/index.js +0 -46
- package/lib/components/multichannel/index.js.map +0 -1
- package/lib/components/multichannel/multichannel-button.js +0 -119
- package/lib/components/multichannel/multichannel-button.js.map +0 -1
- package/lib/components/multichannel/multichannel-carousel.js +0 -143
- package/lib/components/multichannel/multichannel-carousel.js.map +0 -1
- package/lib/components/multichannel/multichannel-context.js +0 -24
- package/lib/components/multichannel/multichannel-context.js.map +0 -1
- package/lib/components/multichannel/multichannel-reply.js +0 -46
- package/lib/components/multichannel/multichannel-reply.js.map +0 -1
- package/lib/components/multichannel/multichannel-text.js +0 -222
- package/lib/components/multichannel/multichannel-text.js.map +0 -1
- package/lib/components/multichannel/multichannel-utils.js +0 -126
- package/lib/components/multichannel/multichannel-utils.js.map +0 -1
- package/lib/components/multichannel/multichannel.js +0 -111
- package/lib/components/multichannel/multichannel.js.map +0 -1
- package/lib/components/pic.js +0 -50
- package/lib/components/pic.js.map +0 -1
- package/lib/components/raw.js +0 -70
- package/lib/components/raw.js.map +0 -1
- package/lib/components/reply.js +0 -107
- package/lib/components/reply.js.map +0 -1
- package/lib/components/share-button.js +0 -36
- package/lib/components/share-button.js.map +0 -1
- package/lib/components/subtitle.js +0 -54
- package/lib/components/subtitle.js.map +0 -1
- package/lib/components/text.js +0 -80
- package/lib/components/text.js.map +0 -1
- package/lib/components/timestamps.js +0 -69
- package/lib/components/timestamps.js.map +0 -1
- package/lib/components/title.js +0 -52
- package/lib/components/title.js.map +0 -1
- package/lib/components/video.js +0 -51
- package/lib/components/video.js.map +0 -1
- package/lib/components/webchat-settings.js +0 -118
- package/lib/components/webchat-settings.js.map +0 -1
- package/lib/components/whatsapp-template.js +0 -53
- package/lib/components/whatsapp-template.js.map +0 -1
- package/lib/constants.js +0 -203
- package/lib/constants.js.map +0 -1
- package/lib/contexts.js +0 -57
- package/lib/contexts.js.map +0 -1
- package/lib/dev-app.js +0 -241
- package/lib/dev-app.js.map +0 -1
- package/lib/index.d.ts +0 -238
- package/lib/index.js +0 -131
- package/lib/index.js.map +0 -1
- package/lib/message-utils.js +0 -149
- package/lib/message-utils.js.map +0 -1
- package/lib/msg-to-botonic.js +0 -199
- package/lib/msg-to-botonic.js.map +0 -1
- package/lib/node-app.js +0 -97
- package/lib/node-app.js.map +0 -1
- package/lib/react-bot.js +0 -167
- package/lib/react-bot.js.map +0 -1
- package/lib/util/dom.js +0 -84
- package/lib/util/dom.js.map +0 -1
- package/lib/util/environment.js +0 -42
- package/lib/util/environment.js.map +0 -1
- package/lib/util/error-boundary.js +0 -105
- package/lib/util/error-boundary.js.map +0 -1
- package/lib/util/index.d.ts +0 -9
- package/lib/util/index.js +0 -2
- package/lib/util/index.js.map +0 -1
- package/lib/util/logs.js +0 -28
- package/lib/util/logs.js.map +0 -1
- package/lib/util/objects.js +0 -60
- package/lib/util/objects.js.map +0 -1
- package/lib/util/react.js +0 -75
- package/lib/util/react.js.map +0 -1
- package/lib/util/regexs.js +0 -31
- package/lib/util/regexs.js.map +0 -1
- package/lib/util/webchat.js +0 -92
- package/lib/util/webchat.js.map +0 -1
- package/lib/webchat/actions.js +0 -53
- package/lib/webchat/actions.js.map +0 -1
- package/lib/webchat/components/attachment.js +0 -68
- package/lib/webchat/components/attachment.js.map +0 -1
- package/lib/webchat/components/common.js +0 -29
- package/lib/webchat/components/common.js.map +0 -1
- package/lib/webchat/components/conditional-animation.js +0 -42
- package/lib/webchat/components/conditional-animation.js.map +0 -1
- package/lib/webchat/components/emoji-picker.js +0 -89
- package/lib/webchat/components/emoji-picker.js.map +0 -1
- package/lib/webchat/components/persistent-menu.js +0 -104
- package/lib/webchat/components/persistent-menu.js.map +0 -1
- package/lib/webchat/components/send-button.js +0 -45
- package/lib/webchat/components/send-button.js.map +0 -1
- package/lib/webchat/components/styled-scrollbar.js +0 -55
- package/lib/webchat/components/styled-scrollbar.js.map +0 -1
- package/lib/webchat/components/typing-indicator.js +0 -27
- package/lib/webchat/components/typing-indicator.js.map +0 -1
- package/lib/webchat/devices/device-adapter.js +0 -82
- package/lib/webchat/devices/device-adapter.js.map +0 -1
- package/lib/webchat/devices/index.js +0 -32
- package/lib/webchat/devices/index.js.map +0 -1
- package/lib/webchat/devices/scrollbar-controller.js +0 -152
- package/lib/webchat/devices/scrollbar-controller.js.map +0 -1
- package/lib/webchat/devices/webchat-resizer.js +0 -76
- package/lib/webchat/devices/webchat-resizer.js.map +0 -1
- package/lib/webchat/header.js +0 -116
- package/lib/webchat/header.js.map +0 -1
- package/lib/webchat/hooks.js +0 -359
- package/lib/webchat/hooks.js.map +0 -1
- package/lib/webchat/index.d.ts +0 -62
- package/lib/webchat/index.js +0 -32
- package/lib/webchat/index.js.map +0 -1
- package/lib/webchat/message-list.js +0 -88
- package/lib/webchat/message-list.js.map +0 -1
- package/lib/webchat/messages-reducer.js +0 -93
- package/lib/webchat/messages-reducer.js.map +0 -1
- package/lib/webchat/replies.js +0 -78
- package/lib/webchat/replies.js.map +0 -1
- package/lib/webchat/session-view.js +0 -106
- package/lib/webchat/session-view.js.map +0 -1
- package/lib/webchat/use-storage-state-hook.js +0 -60
- package/lib/webchat/use-storage-state-hook.js.map +0 -1
- package/lib/webchat/webchat-dev.js +0 -109
- package/lib/webchat/webchat-dev.js.map +0 -1
- package/lib/webchat/webchat-reducer.js +0 -108
- package/lib/webchat/webchat-reducer.js.map +0 -1
- package/lib/webchat/webchat.js +0 -1108
- package/lib/webchat/webchat.js.map +0 -1
- package/lib/webchat/webview.js +0 -122
- package/lib/webchat/webview.js.map +0 -1
- package/lib/webchat-app.js +0 -660
- package/lib/webchat-app.js.map +0 -1
- package/lib/webview.js +0 -231
- package/lib/webview.js.map +0 -1
- /package/lib/{assets → cjs/assets}/attachment-icon.svg +0 -0
- /package/lib/{assets → cjs/assets}/audio.svg +0 -0
- /package/lib/{assets → cjs/assets}/botonic_react_logo100x100.png +0 -0
- /package/lib/{assets → cjs/assets}/document.svg +0 -0
- /package/lib/{assets → cjs/assets}/emojiButton.svg +0 -0
- /package/lib/{assets → cjs/assets}/image.svg +0 -0
- /package/lib/{assets → cjs/assets}/leftArrow.svg +0 -0
- /package/lib/{assets → cjs/assets}/menuButton.svg +0 -0
- /package/lib/{assets → cjs/assets}/rightArrow.svg +0 -0
- /package/lib/{assets → cjs/assets}/send-button.svg +0 -0
- /package/lib/{assets → cjs/assets}/video.svg +0 -0
- /package/lib/{webchat → cjs/webchat}/components/styled-scrollbar.scss +0 -0
- /package/lib/{webchat → cjs/webchat}/components/typing-indicator.scss +0 -0
- /package/lib/{webchat.template.html → cjs/webchat.template.html} +0 -0
- /package/lib/{webview.template.html → cjs/webview.template.html} +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
import { getString } from '@botonic/core/lib/esm/i18n';
|
|
4
|
+
import { PROVIDER } from '@botonic/core/lib/esm/models/legacy-types';
|
|
5
|
+
import { params2queryString } from '@botonic/core/lib/esm/utils';
|
|
6
|
+
import axios from 'axios';
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { render } from 'react-dom';
|
|
9
|
+
import { BrowserRouter, Route } from 'react-router-dom';
|
|
10
|
+
import { RequestContext } from './contexts';
|
|
11
|
+
class App extends React.Component {
|
|
12
|
+
constructor(props) {
|
|
13
|
+
super(props);
|
|
14
|
+
const url = new URL(window.location.href);
|
|
15
|
+
const params = Array.from(url.searchParams.entries())
|
|
16
|
+
.filter(([key, value]) => key != 'context')
|
|
17
|
+
.reduce((o, [key, value]) => {
|
|
18
|
+
o[key] = value;
|
|
19
|
+
return o;
|
|
20
|
+
}, {});
|
|
21
|
+
const session = JSON.parse(url.searchParams.get('context') || {});
|
|
22
|
+
this.state = { session, params };
|
|
23
|
+
}
|
|
24
|
+
async close(options) {
|
|
25
|
+
let payload = options ? options.payload : null;
|
|
26
|
+
if (options.path)
|
|
27
|
+
payload = `__PATH_PAYLOAD__${options.path}`;
|
|
28
|
+
if (payload) {
|
|
29
|
+
if (options.params) {
|
|
30
|
+
payload = `${payload}?${params2queryString(options.params)}`;
|
|
31
|
+
}
|
|
32
|
+
const s = this.state.session;
|
|
33
|
+
try {
|
|
34
|
+
const baseUrl = s._hubtype_api || 'https://api.hubtype.com';
|
|
35
|
+
const resp = await axios({
|
|
36
|
+
method: 'post',
|
|
37
|
+
url: `${baseUrl}/v1/bots/${s.bot.id}/send_postback/`,
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
39
|
+
data: { payload: payload, chat_id: s.user.id },
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
console.log(e);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const provider = this.state.session.user.provider;
|
|
47
|
+
const impId = this.state.session.user.imp_id;
|
|
48
|
+
if (provider === PROVIDER.WHATSAPP) {
|
|
49
|
+
const phone_number = this.state.session.user.unformatted_phone_number;
|
|
50
|
+
location.href = 'https://wa.me/' + phone_number;
|
|
51
|
+
}
|
|
52
|
+
if (provider === PROVIDER.TELEGRAM) {
|
|
53
|
+
location.href = 'https://t.me/' + impId;
|
|
54
|
+
}
|
|
55
|
+
if (provider === PROVIDER.APPLE) {
|
|
56
|
+
location.href = 'https://bcrw.apple.com/urn:biz:' + impId;
|
|
57
|
+
}
|
|
58
|
+
if (provider === PROVIDER.TWITTER) {
|
|
59
|
+
location.href =
|
|
60
|
+
'https://twitter.com/messages/compose?recipient_id=' + impId;
|
|
61
|
+
}
|
|
62
|
+
if (provider === PROVIDER.INSTAGRAM) {
|
|
63
|
+
window.close();
|
|
64
|
+
}
|
|
65
|
+
if (provider === PROVIDER.FACEBOOK) {
|
|
66
|
+
try {
|
|
67
|
+
window.MessengerExtensions.requestCloseBrowser(() => undefined, err => console.log(err));
|
|
68
|
+
}
|
|
69
|
+
catch (e) { }
|
|
70
|
+
}
|
|
71
|
+
if (provider === PROVIDER.WEBCHAT) {
|
|
72
|
+
try {
|
|
73
|
+
await parent.postMessage('botonicCloseWebview', '*');
|
|
74
|
+
}
|
|
75
|
+
catch (e) { }
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
render() {
|
|
79
|
+
const requestContext = {
|
|
80
|
+
getString: stringId => getString(this.props.locales, this.state.session.__locale, stringId),
|
|
81
|
+
session: this.state.session || {},
|
|
82
|
+
params: this.state.params || {},
|
|
83
|
+
closeWebview: this.close.bind(this),
|
|
84
|
+
};
|
|
85
|
+
return (_jsx(RequestContext.Provider, Object.assign({ value: requestContext }, { children: this.props.webviews.map((Webview, i) => (_jsx(Route, { path: `/${Webview.name}`, component: Webview }, i))) })));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
export class WebviewApp {
|
|
89
|
+
constructor({ webviews, locales }) {
|
|
90
|
+
this.webviews = webviews;
|
|
91
|
+
this.locales = locales;
|
|
92
|
+
}
|
|
93
|
+
render(dest) {
|
|
94
|
+
render(_jsx(BrowserRouter, { children: _jsx(App, { webviews: this.webviews, locales: this.locales }) }), dest);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=webview-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webview-app.js","sourceRoot":"src/","sources":["webview-app.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<title></title>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<style>
|
|
7
|
+
html,
|
|
8
|
+
body,
|
|
9
|
+
#root {
|
|
10
|
+
width: 100%;
|
|
11
|
+
height: 100%;
|
|
12
|
+
margin: 0px;
|
|
13
|
+
padding: 0px;
|
|
14
|
+
}
|
|
15
|
+
</style>
|
|
16
|
+
</head>
|
|
17
|
+
|
|
18
|
+
<body>
|
|
19
|
+
<script>
|
|
20
|
+
;(function (d, s, id) {
|
|
21
|
+
var js,
|
|
22
|
+
fjs = d.getElementsByTagName(s)[0]
|
|
23
|
+
if (d.getElementById(id)) {
|
|
24
|
+
return
|
|
25
|
+
}
|
|
26
|
+
js = d.createElement(s)
|
|
27
|
+
js.id = id
|
|
28
|
+
js.src = 'https://connect.facebook.net/en_US/messenger.Extensions.js'
|
|
29
|
+
fjs.parentNode.insertBefore(js, fjs)
|
|
30
|
+
})(document, 'script', 'Messenger')
|
|
31
|
+
</script>
|
|
32
|
+
<div id="root"></div>
|
|
33
|
+
<script type="text/javascript">
|
|
34
|
+
document.addEventListener('DOMContentLoaded', function (event) {
|
|
35
|
+
BotonicWebview.render(document.getElementById('root'))
|
|
36
|
+
})
|
|
37
|
+
</script>
|
|
38
|
+
</body>
|
|
39
|
+
</html>
|
package/package.json
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/react",
|
|
3
|
-
"version": "0.22.0-alpha.
|
|
3
|
+
"version": "0.22.0-alpha.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Build Chatbots using React",
|
|
6
|
-
"main": "
|
|
7
|
-
"
|
|
6
|
+
"main": "./lib/cjs",
|
|
7
|
+
"module": "./lib/esm",
|
|
8
|
+
"types": "./lib/cjs/index.d.ts",
|
|
8
9
|
"scripts": {
|
|
9
|
-
"test": "
|
|
10
|
+
"test:no-coverage": "./node_modules/.bin/jest --env=jsdom",
|
|
11
|
+
"test": "./node_modules/.bin/jest --env=jsdom --coverage",
|
|
10
12
|
"cloc": "../../scripts/qa/cloc-package.sh .",
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
+
"prepublishOnly": "npm run clean; npm run build; npm run copy-files;",
|
|
14
|
+
"prepare": "node ../../preinstall.js;",
|
|
15
|
+
"clean": "rm -rf ./lib/",
|
|
16
|
+
"copy-files": "copyfiles -u 1 src/**/*.svg src/**/*.png src/**/*.scss src/**/*.html lib/esm/; copyfiles -u 1 src/**/*.svg src/**/*.png src/**/*.scss src/**/*.html lib/cjs/;",
|
|
17
|
+
"build": "./node_modules/.bin/tsc -p tsconfig.json && ./node_modules/.bin/tsc -p tsconfig.esm.json",
|
|
13
18
|
"build:watch": "npm run build -- --watch",
|
|
14
|
-
"
|
|
19
|
+
"prettier": "../../node_modules/.bin/prettier --no-error-on-unmatched-pattern --write '**/*.md' '**/*.css' '.*.js' '*.js{,on}'",
|
|
20
|
+
"lint": "npm run prettier; npm run lint_core -- --fix",
|
|
15
21
|
"lint_ci": "npm run lint_core",
|
|
16
|
-
"lint_core": "../../node_modules/.bin/eslint_d --cache --quiet '.*.js' '*.js' 'src/**/*.js*' 'src/**/*.d.ts'
|
|
22
|
+
"lint_core": "../../node_modules/.bin/eslint_d --cache --quiet '.*.js' '*.js' 'src/**/*.js*' 'src/**/*.d.ts' --fix"
|
|
17
23
|
},
|
|
18
24
|
"sideEffects": [
|
|
19
25
|
"*.scss",
|
|
@@ -29,43 +35,50 @@
|
|
|
29
35
|
"README.md"
|
|
30
36
|
],
|
|
31
37
|
"dependencies": {
|
|
32
|
-
"@botonic/core": "0.
|
|
33
|
-
"axios": "^
|
|
34
|
-
"emoji-picker-react": "^
|
|
38
|
+
"@botonic/core": "0.22.0-alpha.0",
|
|
39
|
+
"axios": "^1.4.0",
|
|
40
|
+
"emoji-picker-react": "^4.4.9",
|
|
35
41
|
"framer-motion": "^3.1.1",
|
|
36
42
|
"he": "^1.2.0",
|
|
37
43
|
"lodash.merge": "^4.6.2",
|
|
38
44
|
"markdown-it": "^12.0.6",
|
|
39
45
|
"qrcode.react": "^1.0.1",
|
|
40
|
-
"react": "^
|
|
41
|
-
"react-dom": "^
|
|
46
|
+
"react": "^17.0.0",
|
|
47
|
+
"react-dom": "^17.0.0",
|
|
42
48
|
"react-frame-component": "^4.1.3",
|
|
43
49
|
"react-json-tree": "^0.15.0",
|
|
44
50
|
"react-reveal": "^1.2.2",
|
|
45
|
-
"react-router-dom": "^5.
|
|
51
|
+
"react-router-dom": "^5.3.4",
|
|
46
52
|
"react-textarea-autosize": "^7.1.2",
|
|
47
53
|
"reconnecting-websocket": "^4.4.0",
|
|
48
|
-
"simplebar-react": "^2.
|
|
54
|
+
"simplebar-react": "^2.4.3",
|
|
49
55
|
"styled-components": "^5.3.0",
|
|
50
|
-
"ua-parser-js": "^0.
|
|
56
|
+
"ua-parser-js": "^0.8.1",
|
|
51
57
|
"unescape": "^1.0.1",
|
|
52
|
-
"use-async-effect": "^2.2.
|
|
58
|
+
"use-async-effect": "^2.2.7",
|
|
53
59
|
"uuid": "^8.3.2"
|
|
54
60
|
},
|
|
55
61
|
"devDependencies": {
|
|
56
|
-
"@babel/cli": "^7.
|
|
57
|
-
"@babel/core": "^7.
|
|
58
|
-
"@babel/plugin-proposal-class-properties": "^7.
|
|
59
|
-
"@babel/plugin-proposal-object-rest-spread": "^7.
|
|
60
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
61
|
-
"@babel/preset-env": "^7.
|
|
62
|
-
"@babel/preset-react": "^7.
|
|
62
|
+
"@babel/cli": "^7.21.5",
|
|
63
|
+
"@babel/core": "^7.21.8",
|
|
64
|
+
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
65
|
+
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
|
|
66
|
+
"@babel/plugin-transform-runtime": "^7.21.4",
|
|
67
|
+
"@babel/preset-env": "^7.21.5",
|
|
68
|
+
"@babel/preset-react": "^7.18.6",
|
|
63
69
|
"@testing-library/react": "^12.0.0",
|
|
64
|
-
"@testing-library/react-hooks": "^
|
|
70
|
+
"@testing-library/react-hooks": "^8.0.1",
|
|
71
|
+
"@types/jest": "^29.5.1",
|
|
72
|
+
"@types/parse5": "^7.0.0",
|
|
65
73
|
"@types/react": "17.0.27",
|
|
66
|
-
"babel-plugin-add-module-exports": "^1.0.
|
|
74
|
+
"babel-plugin-add-module-exports": "^1.0.4",
|
|
75
|
+
"copyfiles": "^2.4.1",
|
|
67
76
|
"identity-obj-proxy": "^3.0.0",
|
|
68
|
-
"
|
|
77
|
+
"jest": "^29.5.0",
|
|
78
|
+
"jest-environment-jsdom": "^29.5.0",
|
|
79
|
+
"react-test-renderer": "^17.0.0",
|
|
80
|
+
"ts-jest": "^29.1.0",
|
|
81
|
+
"typescript": "^5.0.4"
|
|
69
82
|
},
|
|
70
83
|
"engines": {
|
|
71
84
|
"node": ">=10.0.0"
|
package/src/components/audio.jsx
CHANGED
|
@@ -2,6 +2,7 @@ import { INPUT, isBrowser } from '@botonic/core'
|
|
|
2
2
|
import React from 'react'
|
|
3
3
|
|
|
4
4
|
import { ROLES } from '../constants'
|
|
5
|
+
import { staticAsset } from '../util/environment'
|
|
5
6
|
import { Message } from './message'
|
|
6
7
|
|
|
7
8
|
const serialize = audioProps => {
|
|
@@ -9,6 +10,7 @@ const serialize = audioProps => {
|
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
export const Audio = props => {
|
|
13
|
+
props = { ...props, src: staticAsset(props.src) }
|
|
12
14
|
let content = props.children
|
|
13
15
|
if (isBrowser())
|
|
14
16
|
content = (
|
|
@@ -4,6 +4,7 @@ import styled from 'styled-components'
|
|
|
4
4
|
|
|
5
5
|
import { ROLES, WEBCHAT } from '../constants'
|
|
6
6
|
import { WebchatContext } from '../contexts'
|
|
7
|
+
import { staticAsset } from '../util/environment'
|
|
7
8
|
import { Message } from './message'
|
|
8
9
|
|
|
9
10
|
const StyledButton = styled.a`
|
|
@@ -29,6 +30,7 @@ const serialize = documentProps => {
|
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
export const Document = props => {
|
|
33
|
+
props = { ...props, src: staticAsset(props.src) }
|
|
32
34
|
let content = props.children
|
|
33
35
|
|
|
34
36
|
const { getThemeProperty } = useContext(WebchatContext)
|
package/src/components/image.jsx
CHANGED
|
@@ -4,6 +4,7 @@ import styled from 'styled-components'
|
|
|
4
4
|
|
|
5
5
|
import { ROLES, WEBCHAT } from '../constants'
|
|
6
6
|
import { WebchatContext } from '../contexts'
|
|
7
|
+
import { staticAsset } from '../util/environment'
|
|
7
8
|
import { Message } from './message'
|
|
8
9
|
|
|
9
10
|
const StyledImage = styled.img`
|
|
@@ -19,6 +20,7 @@ const serialize = imageProps => {
|
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
export const Image = props => {
|
|
23
|
+
props = { ...props, src: staticAsset(props.src) }
|
|
22
24
|
let content = props.children
|
|
23
25
|
|
|
24
26
|
const [isPreviewerOpened, setIsPreviewerOpened] = useState(false)
|
|
@@ -16,8 +16,8 @@ const serialize = locationProps => {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export const Location = props => {
|
|
19
|
-
const lat =
|
|
20
|
-
|
|
19
|
+
const { lat, long } = props
|
|
20
|
+
|
|
21
21
|
const renderBrowser = () => {
|
|
22
22
|
const locationUrl = `https://www.google.com/maps/search/?api=1&query=${lat},${long}`
|
|
23
23
|
return (
|
|
@@ -85,12 +85,8 @@ export const Message = props => {
|
|
|
85
85
|
const isFromUser = from === SENDERS.user
|
|
86
86
|
const isFromBot = from === SENDERS.bot
|
|
87
87
|
const markdown = props.markdown
|
|
88
|
-
const {
|
|
89
|
-
|
|
90
|
-
addMessage,
|
|
91
|
-
updateReplies,
|
|
92
|
-
getThemeProperty,
|
|
93
|
-
} = useContext(WebchatContext)
|
|
88
|
+
const { webchatState, addMessage, updateReplies, getThemeProperty } =
|
|
89
|
+
useContext(WebchatContext)
|
|
94
90
|
const [state, setState] = useState({
|
|
95
91
|
id: props.id || uuidv4(),
|
|
96
92
|
})
|
|
@@ -114,11 +110,8 @@ export const Message = props => {
|
|
|
114
110
|
typeof e === 'string' ? renderLinks(e) : e
|
|
115
111
|
)
|
|
116
112
|
|
|
117
|
-
const {
|
|
118
|
-
|
|
119
|
-
getFormattedTimestamp,
|
|
120
|
-
timestampStyle,
|
|
121
|
-
} = resolveMessageTimestamps(getThemeProperty, enabletimestamps)
|
|
113
|
+
const { timestampsEnabled, getFormattedTimestamp, timestampStyle } =
|
|
114
|
+
resolveMessageTimestamps(getThemeProperty, enabletimestamps)
|
|
122
115
|
|
|
123
116
|
const getEnvAck = () => {
|
|
124
117
|
if (isDev) return 1
|
|
@@ -194,11 +194,8 @@ export const MultichannelText = props => {
|
|
|
194
194
|
if (isFacebook(requestContext)) {
|
|
195
195
|
const text = getText(props.children)
|
|
196
196
|
const multichannelFacebook = new MultichannelFacebook()
|
|
197
|
-
const {
|
|
198
|
-
|
|
199
|
-
propsLastText,
|
|
200
|
-
propsWithoutChildren,
|
|
201
|
-
} = multichannelFacebook.convertText(props, text[0])
|
|
197
|
+
const { texts, propsLastText, propsWithoutChildren } =
|
|
198
|
+
multichannelFacebook.convertText(props, text[0])
|
|
202
199
|
return (
|
|
203
200
|
<>
|
|
204
201
|
{texts &&
|
package/src/components/pic.jsx
CHANGED
|
@@ -2,9 +2,10 @@ import React from 'react'
|
|
|
2
2
|
import styled from 'styled-components'
|
|
3
3
|
|
|
4
4
|
import { COLORS, WEBCHAT } from '../constants'
|
|
5
|
+
import { staticAsset } from '../util/environment'
|
|
5
6
|
import { renderComponent } from '../util/react'
|
|
6
7
|
|
|
7
|
-
const PicStyled = styled.
|
|
8
|
+
const PicStyled = styled.img`
|
|
8
9
|
border-top-left-radius: 8px;
|
|
9
10
|
border-top-right-radius: 8px;
|
|
10
11
|
width: ${WEBCHAT.DEFAULTS.ELEMENT_WIDTH}px;
|
|
@@ -15,6 +16,7 @@ const PicStyled = styled.div`
|
|
|
15
16
|
`
|
|
16
17
|
|
|
17
18
|
export const Pic = props => {
|
|
19
|
+
props = { ...props, src: staticAsset(props.src) }
|
|
18
20
|
const renderBrowser = () => <PicStyled src={props.src} />
|
|
19
21
|
const renderNode = () => <pic>{props.src}</pic>
|
|
20
22
|
return renderComponent({ renderBrowser, renderNode })
|
package/src/components/video.jsx
CHANGED
|
@@ -3,6 +3,7 @@ import React from 'react'
|
|
|
3
3
|
import styled from 'styled-components'
|
|
4
4
|
|
|
5
5
|
import { COLORS, ROLES } from '../constants'
|
|
6
|
+
import { staticAsset } from '../util/environment'
|
|
6
7
|
import { Message } from './message'
|
|
7
8
|
|
|
8
9
|
const StyledVideo = styled.video`
|
|
@@ -18,6 +19,7 @@ const serialize = videoProps => {
|
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
export const Video = props => {
|
|
22
|
+
props = { ...props, src: staticAsset(props.src) }
|
|
21
23
|
let content = props.children
|
|
22
24
|
if (isBrowser())
|
|
23
25
|
content = (
|
package/src/index.js
CHANGED
|
@@ -7,4 +7,4 @@ export { NodeApp } from './node-app'
|
|
|
7
7
|
export { staticAsset } from './util/environment'
|
|
8
8
|
export { getBotonicApp, Webchat } from './webchat/index.js'
|
|
9
9
|
export { WebchatApp } from './webchat-app'
|
|
10
|
-
export { WebviewApp } from './webview'
|
|
10
|
+
export { WebviewApp } from './webview-app'
|
package/src/msg-to-botonic.jsx
CHANGED
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
isAudio,
|
|
5
|
-
isButtonMessage,
|
|
6
|
-
isCarousel,
|
|
7
|
-
isCustom,
|
|
8
|
-
isDocument,
|
|
9
|
-
isImage,
|
|
10
|
-
isLocation,
|
|
11
|
-
isText,
|
|
12
|
-
isVideo,
|
|
13
|
-
} from '../src/message-utils'
|
|
14
3
|
import { Audio } from './components/audio'
|
|
15
4
|
import { Button } from './components/button'
|
|
16
5
|
import { ButtonsDisabler } from './components/buttons-disabler'
|
|
@@ -25,6 +14,17 @@ import { Subtitle } from './components/subtitle'
|
|
|
25
14
|
import { Text } from './components/text'
|
|
26
15
|
import { Title } from './components/title'
|
|
27
16
|
import { Video } from './components/video'
|
|
17
|
+
import {
|
|
18
|
+
isAudio,
|
|
19
|
+
isButtonMessage,
|
|
20
|
+
isCarousel,
|
|
21
|
+
isCustom,
|
|
22
|
+
isDocument,
|
|
23
|
+
isImage,
|
|
24
|
+
isLocation,
|
|
25
|
+
isText,
|
|
26
|
+
isVideo,
|
|
27
|
+
} from './message-utils'
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
*
|
package/src/util/environment.js
CHANGED
|
@@ -9,10 +9,11 @@ export const staticAsset = path => {
|
|
|
9
9
|
.getAttribute('src')
|
|
10
10
|
const scriptName = scriptBaseURL.split('/').pop()
|
|
11
11
|
const basePath = scriptBaseURL.replace('/' + scriptName, '/')
|
|
12
|
-
|
|
12
|
+
const resolvedStaticAssetPath = basePath + path
|
|
13
|
+
return resolvedStaticAssetPath
|
|
13
14
|
} catch (e) {
|
|
14
15
|
console.error(`Could not resolve path: '${path}'`)
|
|
15
|
-
return path
|
|
16
|
+
return normalize(path)
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
19
|
|
|
@@ -26,3 +27,31 @@ export const isURL = urlPath => {
|
|
|
26
27
|
const pattern = new RegExp(/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/)
|
|
27
28
|
return !!pattern.test(urlPath)
|
|
28
29
|
}
|
|
30
|
+
|
|
31
|
+
export function normalize(path) {
|
|
32
|
+
const isAbsolute = path.charAt(0) === '/'
|
|
33
|
+
const trailingSlash = path && path[path.length - 1] === '/'
|
|
34
|
+
// Normalize the path
|
|
35
|
+
path = normalizeArray(path.split('/'), !isAbsolute).join('/')
|
|
36
|
+
if (!path && !isAbsolute) path = '.'
|
|
37
|
+
if (path && trailingSlash) path += '/'
|
|
38
|
+
return (isAbsolute ? '/' : '') + path
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function normalizeArray(parts, allowAboveRoot) {
|
|
42
|
+
const res = []
|
|
43
|
+
for (let i = 0; i < parts.length; i++) {
|
|
44
|
+
const p = parts[i]
|
|
45
|
+
if (!p || p === '.') continue
|
|
46
|
+
if (p === '..') {
|
|
47
|
+
if (res.length && res[res.length - 1] !== '..') {
|
|
48
|
+
res.pop()
|
|
49
|
+
} else if (allowAboveRoot) {
|
|
50
|
+
res.push('..')
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
res.push(p)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return res
|
|
57
|
+
}
|
|
@@ -1,48 +1,33 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
1
2
|
import { isNode } from '@botonic/core'
|
|
2
|
-
import React from 'react'
|
|
3
|
+
import React, { useState } from 'react'
|
|
3
4
|
|
|
4
5
|
import { Text } from '../components/text'
|
|
5
6
|
|
|
6
|
-
/**
|
|
7
|
-
* Replaces crashed children with the provided fallback component.
|
|
8
|
-
* https://reactjs.org/blog/2017/07/26/error-handling-in-react-16.html
|
|
9
|
-
* See alternative at https://stackoverflow.com/a/60255291/145289
|
|
10
|
-
*/
|
|
11
7
|
export const createErrorBoundary = ({
|
|
12
|
-
errorComponent =
|
|
8
|
+
errorComponent = ({ errorMessage }) => (
|
|
9
|
+
<Text>The message cannot be displayed</Text>
|
|
10
|
+
),
|
|
13
11
|
} = {}) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
super(props)
|
|
17
|
-
this.state = { error: null }
|
|
18
|
-
}
|
|
12
|
+
const ErrorBoundary = ({ children }) => {
|
|
13
|
+
const [error, setError] = useState(null)
|
|
19
14
|
|
|
20
|
-
|
|
21
|
-
* @param error the exception which was trown
|
|
22
|
-
* @param errorInfo the stack of component names at the error
|
|
23
|
-
*/
|
|
24
|
-
componentDidCatch(error, errorInfo) {
|
|
25
|
-
// No need to log the error because at least chrome & firefox already show
|
|
26
|
-
// both component and call stacks
|
|
15
|
+
const componentDidCatch = (error, errorInfo) => {
|
|
27
16
|
if (isNode()) {
|
|
28
|
-
// In node, only the component stack is displayed
|
|
29
17
|
console.error(`Failure at:`, error)
|
|
30
18
|
}
|
|
31
19
|
}
|
|
32
20
|
|
|
33
|
-
|
|
21
|
+
const getDerivedStateFromError = error => {
|
|
34
22
|
return { error }
|
|
35
23
|
}
|
|
36
24
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
} else {
|
|
44
|
-
return this.props.children
|
|
45
|
-
}
|
|
25
|
+
if (error) {
|
|
26
|
+
return errorComponent({
|
|
27
|
+
errorMessage: error.message,
|
|
28
|
+
})
|
|
29
|
+
} else {
|
|
30
|
+
return children
|
|
46
31
|
}
|
|
47
32
|
}
|
|
48
33
|
|
package/src/util/webchat.js
CHANGED
|
@@ -10,21 +10,20 @@ import { getProperty } from './objects'
|
|
|
10
10
|
* It gives preference to nested defined properties (e.g.: header.style) over plain properties (e.g.: headerStyle).
|
|
11
11
|
* If property doesn't exist, returns the defaultValue.
|
|
12
12
|
*/
|
|
13
|
-
export const _getThemeProperty =
|
|
14
|
-
|
|
15
|
-
defaultValue = undefined
|
|
16
|
-
)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
export const _getThemeProperty =
|
|
14
|
+
theme =>
|
|
15
|
+
(property, defaultValue = undefined) => {
|
|
16
|
+
for (const [k, v] of Object.entries(WEBCHAT.CUSTOM_PROPERTIES)) {
|
|
17
|
+
if (v == property) {
|
|
18
|
+
const nestedProperty = getProperty(theme, v)
|
|
19
|
+
if (nestedProperty !== undefined) return nestedProperty
|
|
20
|
+
const plainProperty = getProperty(theme, k)
|
|
21
|
+
if (plainProperty !== undefined) return plainProperty
|
|
22
|
+
return defaultValue
|
|
23
|
+
}
|
|
24
24
|
}
|
|
25
|
+
return undefined
|
|
25
26
|
}
|
|
26
|
-
return undefined
|
|
27
|
-
}
|
|
28
27
|
|
|
29
28
|
export const createUser = () => {
|
|
30
29
|
const parser = new UAParser()
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useContext } from 'react'
|
|
1
|
+
import React, { useContext, useRef } from 'react'
|
|
2
2
|
|
|
3
3
|
import AttachmentIcon from '../../assets/attachment-icon.svg'
|
|
4
4
|
import { ROLES, WEBCHAT } from '../../constants'
|
|
@@ -9,6 +9,8 @@ import { Icon } from './common'
|
|
|
9
9
|
export const Attachment = ({ onChange, accept, enableAttachments }) => {
|
|
10
10
|
const { getThemeProperty } = useContext(WebchatContext)
|
|
11
11
|
|
|
12
|
+
const fileInputRef = useRef(null)
|
|
13
|
+
|
|
12
14
|
const CustomAttachments = getThemeProperty(
|
|
13
15
|
WEBCHAT.CUSTOM_PROPERTIES.customAttachments,
|
|
14
16
|
undefined
|
|
@@ -25,6 +27,11 @@ export const Attachment = ({ onChange, accept, enableAttachments }) => {
|
|
|
25
27
|
}
|
|
26
28
|
const attachmentsEnabled = isAttachmentsEnabled()
|
|
27
29
|
|
|
30
|
+
const handleOnChange = event => {
|
|
31
|
+
onChange(event)
|
|
32
|
+
fileInputRef.current.value = null
|
|
33
|
+
}
|
|
34
|
+
|
|
28
35
|
return (
|
|
29
36
|
<>
|
|
30
37
|
{attachmentsEnabled ? (
|
|
@@ -38,11 +45,12 @@ export const Attachment = ({ onChange, accept, enableAttachments }) => {
|
|
|
38
45
|
)}
|
|
39
46
|
</label>
|
|
40
47
|
<input
|
|
48
|
+
ref={fileInputRef}
|
|
41
49
|
type='file'
|
|
42
50
|
name='file'
|
|
43
51
|
id='attachment'
|
|
44
52
|
style={{ display: 'none' }}
|
|
45
|
-
onChange={
|
|
53
|
+
onChange={handleOnChange}
|
|
46
54
|
accept={accept}
|
|
47
55
|
/>
|
|
48
56
|
</div>
|
|
@@ -64,7 +64,13 @@ export const OpenedEmojiPicker = props => {
|
|
|
64
64
|
<div ref={ref}>
|
|
65
65
|
{isComponentVisible && (
|
|
66
66
|
<Container role={ROLES.EMOJI_PICKER}>
|
|
67
|
-
<Picker
|
|
67
|
+
<Picker
|
|
68
|
+
width='100%'
|
|
69
|
+
height='19rem'
|
|
70
|
+
previewConfig={{ showPreview: false }}
|
|
71
|
+
onEmojiClick={props.onEmojiClick}
|
|
72
|
+
disableAutoFocus={true}
|
|
73
|
+
/>
|
|
68
74
|
</Container>
|
|
69
75
|
)}
|
|
70
76
|
</div>
|
package/src/webchat/hooks.js
CHANGED
|
@@ -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
|
-
|
|
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
|
}
|