@botonic/react 0.20.1-alpha.1 → 0.20.1
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/components/image.js +6 -52
- package/lib/components/image.js.map +1 -1
- package/lib/constants.js +200 -0
- package/lib/constants.js.map +1 -0
- package/lib/contexts.js +57 -0
- package/lib/contexts.js.map +1 -0
- package/lib/dev-app.js +241 -0
- package/lib/dev-app.js.map +1 -0
- package/lib/index.d.ts +239 -0
- package/lib/index.js +131 -0
- package/lib/index.js.map +1 -0
- package/lib/message-utils.js +149 -0
- package/lib/message-utils.js.map +1 -0
- package/lib/msg-to-botonic.js +199 -0
- package/lib/msg-to-botonic.js.map +1 -0
- package/lib/node-app.js +97 -0
- package/lib/node-app.js.map +1 -0
- package/lib/react-bot.js +167 -0
- package/lib/react-bot.js.map +1 -0
- package/lib/util/dom.js +84 -0
- package/lib/util/dom.js.map +1 -0
- package/lib/util/environment.js +42 -0
- package/lib/util/environment.js.map +1 -0
- package/lib/util/error-boundary.js +105 -0
- package/lib/util/error-boundary.js.map +1 -0
- package/lib/util/index.d.ts +9 -0
- package/lib/util/index.js +2 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/logs.js +28 -0
- package/lib/util/logs.js.map +1 -0
- package/lib/util/objects.js +60 -0
- package/lib/util/objects.js.map +1 -0
- package/lib/util/react.js +75 -0
- package/lib/util/react.js.map +1 -0
- package/lib/util/regexs.js +31 -0
- package/lib/util/regexs.js.map +1 -0
- package/lib/util/webchat.js +92 -0
- package/lib/util/webchat.js.map +1 -0
- package/lib/webchat/actions.js +51 -0
- package/lib/webchat/actions.js.map +1 -0
- package/lib/webchat/components/attachment.js +43 -0
- package/lib/webchat/components/attachment.js.map +1 -0
- package/lib/webchat/components/common.js +33 -0
- package/lib/webchat/components/common.js.map +1 -0
- package/lib/webchat/components/emoji-picker.js +58 -0
- package/lib/webchat/components/emoji-picker.js.map +1 -0
- package/lib/webchat/components/persistent-menu.js +96 -0
- package/lib/webchat/components/persistent-menu.js.map +1 -0
- package/lib/webchat/components/send-button.js +27 -0
- package/lib/webchat/components/send-button.js.map +1 -0
- package/lib/webchat/components/styled-scrollbar.js +55 -0
- package/lib/webchat/components/styled-scrollbar.js.map +1 -0
- package/lib/webchat/components/styled-scrollbar.scss +12 -0
- package/lib/webchat/components/typing-indicator.js +27 -0
- package/lib/webchat/components/typing-indicator.js.map +1 -0
- package/lib/webchat/components/typing-indicator.scss +38 -0
- package/lib/webchat/devices/device-adapter.js +82 -0
- package/lib/webchat/devices/device-adapter.js.map +1 -0
- package/lib/webchat/devices/index.js +32 -0
- package/lib/webchat/devices/index.js.map +1 -0
- package/lib/webchat/devices/scrollbar-controller.js +152 -0
- package/lib/webchat/devices/scrollbar-controller.js.map +1 -0
- package/lib/webchat/devices/webchat-resizer.js +76 -0
- package/lib/webchat/devices/webchat-resizer.js.map +1 -0
- package/lib/webchat/header.js +116 -0
- package/lib/webchat/header.js.map +1 -0
- package/lib/webchat/hooks.js +350 -0
- package/lib/webchat/hooks.js.map +1 -0
- package/lib/webchat/index.d.ts +62 -0
- package/lib/webchat/index.js +32 -0
- package/lib/webchat/index.js.map +1 -0
- package/lib/webchat/message-list.js +88 -0
- package/lib/webchat/message-list.js.map +1 -0
- package/lib/webchat/messages-reducer.js +93 -0
- package/lib/webchat/messages-reducer.js.map +1 -0
- package/lib/webchat/replies.js +78 -0
- package/lib/webchat/replies.js.map +1 -0
- package/lib/webchat/session-view.js +106 -0
- package/lib/webchat/session-view.js.map +1 -0
- package/lib/webchat/use-storage-state-hook.js +29 -0
- package/lib/webchat/use-storage-state-hook.js.map +1 -0
- package/lib/webchat/webchat-dev.js +109 -0
- package/lib/webchat/webchat-dev.js.map +1 -0
- package/lib/webchat/webchat-reducer.js +102 -0
- package/lib/webchat/webchat-reducer.js.map +1 -0
- package/lib/webchat/webchat.js +1041 -0
- package/lib/webchat/webchat.js.map +1 -0
- package/lib/webchat/webview.js +122 -0
- package/lib/webchat/webview.js.map +1 -0
- package/lib/webchat-app.js +643 -0
- package/lib/webchat-app.js.map +1 -0
- package/lib/webchat.template.html +37 -0
- package/lib/webview.js +214 -0
- package/lib/webview.js.map +1 -0
- package/lib/webview.template.html +39 -0
- package/package.json +2 -2
- package/src/components/image.jsx +3 -37
- package/src/index.d.ts +0 -2
- package/src/index.js +0 -1
- package/src/webchat/actions.jsx +0 -1
- package/src/webchat/hooks.js +0 -8
- package/src/webchat/webchat-reducer.js +0 -4
- package/src/webchat/webchat.jsx +0 -18
- package/src/webchat-app.jsx +0 -8
- package/src/webchat/components/portal-modal/backdrop.jsx +0 -38
- package/src/webchat/components/portal-modal/constants.js +0 -7
- package/src/webchat/components/portal-modal/content.jsx +0 -10
- package/src/webchat/components/portal-modal/index.js +0 -5
- package/src/webchat/components/portal-modal/portal-modal-component.jsx +0 -72
- package/src/webchat/components/portal-modal/portal.jsx +0 -21
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useRef, useState } from 'react'
|
|
2
|
-
|
|
3
|
-
import { Backdrop } from './backdrop'
|
|
4
|
-
import {
|
|
5
|
-
MODAL_ACTIVE_CLASSNAME,
|
|
6
|
-
MODAL_CONTENT_CLASSNAME,
|
|
7
|
-
MODAL_PORTAL_CLASS_NAME,
|
|
8
|
-
} from './constants'
|
|
9
|
-
import { ModalContent } from './content'
|
|
10
|
-
import { Portal } from './portal'
|
|
11
|
-
|
|
12
|
-
const ESCAPE_KEY_CODE = 27
|
|
13
|
-
|
|
14
|
-
export function PortalModalComponent({
|
|
15
|
-
open,
|
|
16
|
-
onClose,
|
|
17
|
-
locked,
|
|
18
|
-
children,
|
|
19
|
-
customContent,
|
|
20
|
-
}) {
|
|
21
|
-
const [active, setActive] = useState(false)
|
|
22
|
-
|
|
23
|
-
const backdrop = useRef(null)
|
|
24
|
-
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
const { current } = backdrop
|
|
27
|
-
const transitionEnd = () => setActive(open)
|
|
28
|
-
const keyHandler = e =>
|
|
29
|
-
!locked && [ESCAPE_KEY_CODE].indexOf(e.which) >= 0 && onClose()
|
|
30
|
-
const clickHandler = e => !locked && e.target === current && onClose()
|
|
31
|
-
|
|
32
|
-
if (current) {
|
|
33
|
-
current.addEventListener('transitionend', transitionEnd)
|
|
34
|
-
current.addEventListener('click', clickHandler)
|
|
35
|
-
window.addEventListener('keyup', keyHandler)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (open) {
|
|
39
|
-
window.setTimeout(() => {
|
|
40
|
-
document.activeElement.blur()
|
|
41
|
-
setActive(open)
|
|
42
|
-
}, 10)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return () => {
|
|
46
|
-
if (current) {
|
|
47
|
-
current.removeEventListener('transitionend', transitionEnd)
|
|
48
|
-
current.removeEventListener('click', clickHandler)
|
|
49
|
-
}
|
|
50
|
-
window.removeEventListener('keyup', keyHandler)
|
|
51
|
-
}
|
|
52
|
-
}, [open, locked, onClose])
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
(open || active) && (
|
|
56
|
-
<Portal className={MODAL_PORTAL_CLASS_NAME}>
|
|
57
|
-
<Backdrop
|
|
58
|
-
ref={backdrop}
|
|
59
|
-
className={active && open && MODAL_ACTIVE_CLASSNAME}
|
|
60
|
-
>
|
|
61
|
-
{customContent ? (
|
|
62
|
-
customContent
|
|
63
|
-
) : (
|
|
64
|
-
<ModalContent className={MODAL_CONTENT_CLASSNAME}>
|
|
65
|
-
{children}
|
|
66
|
-
</ModalContent>
|
|
67
|
-
)}
|
|
68
|
-
</Backdrop>
|
|
69
|
-
</Portal>
|
|
70
|
-
)
|
|
71
|
-
)
|
|
72
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { useEffect, useMemo } from 'react'
|
|
2
|
-
import { createPortal } from 'react-dom'
|
|
3
|
-
|
|
4
|
-
import { BOTONIC_PORTAL_CLASS_LIST_NAME } from './constants'
|
|
5
|
-
|
|
6
|
-
export function Portal({ children, parent, className }) {
|
|
7
|
-
const element = useMemo(() => document.createElement('div'), [])
|
|
8
|
-
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
const target = parent && parent.appendChild ? parent : document.body
|
|
11
|
-
const classList = [BOTONIC_PORTAL_CLASS_LIST_NAME]
|
|
12
|
-
|
|
13
|
-
if (className) className.split(' ').forEach(item => classList.push(item))
|
|
14
|
-
classList.forEach(item => element.classList.add(item))
|
|
15
|
-
target.appendChild(element)
|
|
16
|
-
|
|
17
|
-
return () => target.removeChild(element)
|
|
18
|
-
}, [element, parent, className])
|
|
19
|
-
|
|
20
|
-
return createPortal(children, element)
|
|
21
|
-
}
|