@botonic/react 0.30.4 → 0.36.0-alpha.0
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/components/button.d.ts +11 -10
- package/lib/cjs/components/button.js +39 -25
- package/lib/cjs/components/button.js.map +1 -1
- package/lib/cjs/components/index-types.d.ts +3 -0
- package/lib/cjs/index-types.d.ts +4 -3
- package/lib/cjs/webchat/hooks/use-webchat.d.ts +3 -3
- package/lib/cjs/webchat/hooks/use-webchat.js.map +1 -1
- package/lib/esm/components/button.d.ts +11 -10
- package/lib/esm/components/button.js +39 -25
- package/lib/esm/components/button.js.map +1 -1
- package/lib/esm/components/index-types.d.ts +3 -0
- package/lib/esm/index-types.d.ts +4 -3
- package/lib/esm/webchat/hooks/use-webchat.d.ts +3 -3
- package/lib/esm/webchat/hooks/use-webchat.js.map +1 -1
- package/package.json +4 -4
- package/src/components/{button.jsx → button.tsx} +49 -20
- package/src/components/index-types.ts +3 -0
- package/src/index-types.ts +6 -3
- package/src/webchat/hooks/use-webchat.ts +2 -2
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
|
|
1
|
+
import { ButtonProps } from './index-types';
|
|
2
|
+
export declare const StyledUrlImage: import("styled-components").StyledComponent<"img", any, {}, never>;
|
|
3
|
+
export declare const Button: {
|
|
4
|
+
(props: ButtonProps): any;
|
|
5
|
+
serialize(buttonProps: ButtonProps): {
|
|
5
6
|
button: {
|
|
6
7
|
disabled: any;
|
|
7
8
|
autodisable: any;
|
|
8
9
|
disabledstyle: any;
|
|
9
|
-
payload:
|
|
10
|
-
url:
|
|
11
|
-
target:
|
|
12
|
-
webview:
|
|
13
|
-
title:
|
|
10
|
+
payload: string | undefined;
|
|
11
|
+
url: string | undefined;
|
|
12
|
+
target: string | undefined;
|
|
13
|
+
webview: string | undefined;
|
|
14
|
+
title: string;
|
|
14
15
|
};
|
|
15
16
|
};
|
|
16
|
-
}
|
|
17
|
+
};
|
|
@@ -4,7 +4,7 @@ exports.Button = exports.StyledUrlImage = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const core_1 = require("@botonic/core");
|
|
7
|
-
const react_1 =
|
|
7
|
+
const react_1 = require("react");
|
|
8
8
|
const styled_components_1 = tslib_1.__importDefault(require("styled-components"));
|
|
9
9
|
const constants_1 = require("../constants");
|
|
10
10
|
const contexts_1 = require("../contexts");
|
|
@@ -27,16 +27,16 @@ const StyledButton = styled_components_1.default.button `
|
|
|
27
27
|
border: 1px solid ${constants_1.COLORS.SEASHELL_WHITE};
|
|
28
28
|
cursor: pointer;
|
|
29
29
|
outline: 0;
|
|
30
|
-
border-top-right-radius:
|
|
31
|
-
border-top-left-radius:
|
|
32
|
-
border-bottom-right-radius:
|
|
33
|
-
border-bottom-left-radius:
|
|
30
|
+
border-top-right-radius: 0px;
|
|
31
|
+
border-top-left-radius: 0px;
|
|
32
|
+
border-bottom-right-radius: 0px;
|
|
33
|
+
border-bottom-left-radius: 0px;
|
|
34
34
|
overflow: hidden;
|
|
35
35
|
`;
|
|
36
36
|
exports.StyledUrlImage = styled_components_1.default.img `
|
|
37
37
|
width: 20px;
|
|
38
38
|
`;
|
|
39
|
-
const Button = props => {
|
|
39
|
+
const Button = (props) => {
|
|
40
40
|
const { webchatState, openWebview, sendPayload, sendInput, getThemeProperty, updateMessage, } = (0, react_1.useContext)(contexts_1.WebchatContext);
|
|
41
41
|
const [hover, setHover] = (0, react_1.useState)(false);
|
|
42
42
|
const { theme } = webchatState;
|
|
@@ -44,10 +44,11 @@ const Button = props => {
|
|
|
44
44
|
const handleClick = event => {
|
|
45
45
|
event.preventDefault();
|
|
46
46
|
const type = getThemeProperty(constants_1.WEBCHAT.CUSTOM_PROPERTIES.buttonMessageType, core_1.INPUT.TEXT);
|
|
47
|
-
if (props.webview)
|
|
47
|
+
if (props.webview) {
|
|
48
48
|
openWebview(props.webview, props.params);
|
|
49
|
+
}
|
|
49
50
|
else if (props.path) {
|
|
50
|
-
type
|
|
51
|
+
type === core_1.INPUT.POSTBACK
|
|
51
52
|
? sendPayload(`__PATH_PAYLOAD__${props.path}`)
|
|
52
53
|
: sendInput({
|
|
53
54
|
type: core_1.INPUT.TEXT,
|
|
@@ -57,7 +58,7 @@ const Button = props => {
|
|
|
57
58
|
});
|
|
58
59
|
}
|
|
59
60
|
else if (props.payload) {
|
|
60
|
-
type
|
|
61
|
+
type === core_1.INPUT.POSTBACK
|
|
61
62
|
? sendPayload(props.payload)
|
|
62
63
|
: sendInput({
|
|
63
64
|
type: core_1.INPUT.TEXT,
|
|
@@ -69,11 +70,12 @@ const Button = props => {
|
|
|
69
70
|
else if (props.url) {
|
|
70
71
|
window.open(props.url, props.target || '_blank');
|
|
71
72
|
}
|
|
72
|
-
if (props.onClick)
|
|
73
|
+
if (props.onClick) {
|
|
73
74
|
props.onClick();
|
|
75
|
+
}
|
|
74
76
|
if (props.setDisabled) {
|
|
75
77
|
props.setDisabled(true);
|
|
76
|
-
const messageToUpdate = webchatState.messagesJSON.filter(m => m.id
|
|
78
|
+
const messageToUpdate = webchatState.messagesJSON.filter(m => m.id === props.parentId)[0];
|
|
77
79
|
const updatedMsg = buttons_disabler_1.ButtonsDisabler.getUpdatedMessage(messageToUpdate, {
|
|
78
80
|
autoDisable,
|
|
79
81
|
disabledStyle,
|
|
@@ -115,35 +117,47 @@ const Button = props => {
|
|
|
115
117
|
const urlIconImageProp = getThemeProperty(constants_1.WEBCHAT.CUSTOM_PROPERTIES.urlIconImage);
|
|
116
118
|
const urlIconImage = urlIconImageProp !== null && urlIconImageProp !== void 0 ? urlIconImageProp : constants_1.WEBCHAT.DEFAULTS.URL_ICON;
|
|
117
119
|
const urlIcon = urlIconEnabledProp || urlIconImageProp ? urlIconImage : undefined;
|
|
118
|
-
return ((0, jsx_runtime_1.jsxs)(StyledButton, Object.assign({ className: getClassName(), theme: theme, onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onClick: e => handleClick(e), style: Object.assign(Object.assign(Object.assign({}, buttonStyle), { color: buttonTextColor, backgroundColor: buttonBgColor }), (props.disabled && autoDisable && disabledStyle))
|
|
120
|
+
return ((0, jsx_runtime_1.jsxs)(StyledButton, Object.assign({ className: getClassName(), theme: theme, onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onClick: e => handleClick(e), style: Object.assign(Object.assign(Object.assign({}, buttonStyle), { color: buttonTextColor, backgroundColor: buttonBgColor }), (props.disabled && autoDisable && disabledStyle)) }, { children: [props.children, props.url && urlIcon && ((0, jsx_runtime_1.jsx)(exports.StyledUrlImage, { className: 'botonic-url-icon', src: (0, environment_1.resolveImage)(urlIcon) }))] })));
|
|
119
121
|
};
|
|
120
122
|
const renderNode = () => {
|
|
121
123
|
const disabledProps = buttons_disabler_1.ButtonsDisabler.constructNodeProps(props);
|
|
122
124
|
if (props.webview) {
|
|
123
|
-
return ((0, jsx_runtime_1.jsx)("button", Object.assign({
|
|
125
|
+
return ((0, jsx_runtime_1.jsx)("button", Object.assign({
|
|
126
|
+
// @ts-ignore
|
|
127
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
128
|
+
url: (0, webviews_1.generateWebviewUrlWithParams)(props.webview, props.params) }, disabledProps, { children: props.children })));
|
|
124
129
|
}
|
|
125
|
-
|
|
130
|
+
if (props.path) {
|
|
126
131
|
const payload = `__PATH_PAYLOAD__${props.path}`;
|
|
127
|
-
return (
|
|
132
|
+
return (
|
|
133
|
+
// @ts-ignore
|
|
134
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
135
|
+
(0, jsx_runtime_1.jsx)("button", Object.assign({ payload: payload }, disabledProps, { children: props.children })));
|
|
128
136
|
}
|
|
129
|
-
|
|
130
|
-
return (
|
|
137
|
+
if (props.payload) {
|
|
138
|
+
return (
|
|
139
|
+
// @ts-ignore
|
|
140
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
141
|
+
(0, jsx_runtime_1.jsx)("button", Object.assign({ payload: props.payload }, disabledProps, { children: props.children })));
|
|
131
142
|
}
|
|
132
|
-
|
|
133
|
-
return (
|
|
143
|
+
if (props.url) {
|
|
144
|
+
return (
|
|
145
|
+
// @ts-ignore
|
|
146
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
147
|
+
(0, jsx_runtime_1.jsx)("button", Object.assign({ url: props.url, target: props.target }, disabledProps, { children: props.children })));
|
|
134
148
|
}
|
|
135
|
-
|
|
149
|
+
if (props.onClick) {
|
|
136
150
|
return null;
|
|
137
151
|
}
|
|
138
|
-
throw new Error('Button missing payload, path,
|
|
152
|
+
throw new Error('Button missing payload, path, webview, url or onClick');
|
|
139
153
|
};
|
|
140
154
|
return (0, react_2.renderComponent)({ renderBrowser, renderNode });
|
|
141
155
|
};
|
|
142
156
|
exports.Button = Button;
|
|
143
|
-
exports.Button.serialize = buttonProps => {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
157
|
+
exports.Button.serialize = (buttonProps) => {
|
|
158
|
+
const payload = buttonProps.path
|
|
159
|
+
? `__PATH_PAYLOAD__${buttonProps.path}`
|
|
160
|
+
: buttonProps.payload;
|
|
147
161
|
return {
|
|
148
162
|
button: Object.assign({ payload, url: buttonProps.url, target: buttonProps.target, webview: buttonProps.webview && String(buttonProps.webview), title: buttonProps.children && String(buttonProps.children) }, buttons_disabler_1.ButtonsDisabler.withDisabledProps(buttonProps)),
|
|
149
163
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button.
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button.tsx"],"names":[],"mappings":"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"}
|
package/lib/cjs/index-types.d.ts
CHANGED
|
@@ -114,15 +114,16 @@ export interface Event {
|
|
|
114
114
|
isError?: boolean;
|
|
115
115
|
message?: MessageInfo;
|
|
116
116
|
}
|
|
117
|
+
export type ClientInput = Omit<CoreInput, 'message_id' | 'bot_interaction_id'>;
|
|
117
118
|
export interface WebchatContextProps {
|
|
118
119
|
addMessage: (message: WebchatMessage) => void;
|
|
119
120
|
closeWebview: () => Promise<void>;
|
|
120
121
|
getThemeProperty: (property: string, defaultValue?: any) => any;
|
|
121
|
-
openWebview: (webviewComponent: Webview) => void;
|
|
122
|
+
openWebview: (webviewComponent: Webview, params?: any) => void;
|
|
122
123
|
resetUnreadMessages: () => void;
|
|
123
124
|
resolveCase: () => void;
|
|
124
125
|
sendAttachment: (attachment: File) => Promise<void>;
|
|
125
|
-
sendInput: (input:
|
|
126
|
+
sendInput: (input: ClientInput) => Promise<void>;
|
|
126
127
|
sendPayload: (payload: string) => Promise<void>;
|
|
127
128
|
sendText: (text: string, payload?: string) => Promise<void>;
|
|
128
129
|
setLastMessageVisible: (isLastMessageVisible: boolean) => void;
|
|
@@ -130,7 +131,7 @@ export interface WebchatContextProps {
|
|
|
130
131
|
toggleWebchat: (toggle: boolean) => void;
|
|
131
132
|
toggleEmojiPicker: (toggle: boolean) => void;
|
|
132
133
|
togglePersistentMenu: (toggle: boolean) => void;
|
|
133
|
-
updateLatestInput: (input:
|
|
134
|
+
updateLatestInput: (input: ClientInput) => void;
|
|
134
135
|
updateMessage: (message: WebchatMessage) => void;
|
|
135
136
|
updateReplies: (replies: boolean) => void;
|
|
136
137
|
updateUser: (user: Partial<CoreSessionUser>) => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
2
|
+
import { Session } from '@botonic/core';
|
|
3
3
|
import { ThemeProps, Webview } from '../../components/index-types';
|
|
4
|
-
import { WebchatMessage } from '../../index-types';
|
|
4
|
+
import { ClientInput, WebchatMessage } from '../../index-types';
|
|
5
5
|
import { WebchatAction } from '../actions';
|
|
6
6
|
import { DevSettings, ErrorMessage, WebchatState } from '../index-types';
|
|
7
7
|
export declare const webchatInitialState: WebchatState;
|
|
@@ -25,7 +25,7 @@ export declare function useWebchat(): {
|
|
|
25
25
|
updateHandoff: (handoff: boolean) => void;
|
|
26
26
|
updateLastMessageDate: (date: string) => void;
|
|
27
27
|
updateLastRoutePath: (path: string) => void;
|
|
28
|
-
updateLatestInput: (input:
|
|
28
|
+
updateLatestInput: (input: ClientInput) => void;
|
|
29
29
|
updateMessage: (message: WebchatMessage) => void;
|
|
30
30
|
updateReplies: (replies: any) => void;
|
|
31
31
|
updateSession: (session: Session) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-webchat.js","sourceRoot":"","sources":["../../../../src/webchat/hooks/use-webchat.ts"],"names":[],"mappings":";;;AACA,iCAA0C;AAG1C,+CAAiD;AAEjD,wCAA0C;AAE1C,wDAAmD;AAEtC,QAAA,mBAAmB,GAAiB;IAC/C,KAAK,EAAE,mBAAO,CAAC,QAAQ,CAAC,KAAK;IAC7B,MAAM,EAAE,mBAAO,CAAC,QAAQ,CAAC,MAAM;IAC/B,YAAY,EAAE,EAAE;IAChB,kBAAkB,EAAE,EAAE;IACtB,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,IAAI;IACb,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE;QACL,WAAW,EAAE,mBAAO,CAAC,QAAQ,CAAC,KAAK;QACnC,UAAU,EAAE,kBAAM,CAAC,YAAY;QAC/B,UAAU,EAAE,mBAAO,CAAC,QAAQ,CAAC,IAAI;QACjC,kBAAkB,EAAE,SAAS;QAC7B,eAAe,EAAE,mBAAO,CAAC,QAAQ,CAAC,WAAW;QAC7C,KAAK,EAAE;YACL,UAAU,EAAE,mBAAO,CAAC,QAAQ,CAAC,WAAW;SACzC;KACF;IACD,YAAY,EAAE,EAAE;IAChB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE;IAC3C,aAAa,EAAE,KAAK;IACpB,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,KAAK;IAC3B,oBAAoB,EAAE,KAAK;IAC3B,yBAAyB,EAAE,KAAK;IAChC,iBAAiB,EAAE,SAAS;IAC5B,iBAAiB,EAAE,SAAS;IAC5B,iBAAiB,EAAE,CAAC;IACpB,oBAAoB,EAAE,IAAI;CAC3B,CAAA;AAED,SAAgB,UAAU;IACxB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,kBAAU,EAChD,gCAAc,EACd,2BAAmB,CACpB,CAAA;IAED,MAAM,UAAU,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAA;IACtD,MAAM,WAAW,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAA;IACvD,MAAM,aAAa,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAA;IACzD,MAAM,SAAS,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAA;IACrD,MAAM,yBAAyB,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAA;IACrE,MAAM,UAAU,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAA;IAEtD,MAAM,UAAU,GAAG,CAAC,OAAuB,EAAE,EAAE,CAC7C,eAAe,CAAC,EAAE,IAAI,EAAE,uBAAa,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IAExE,MAAM,mBAAmB,GAAG,CAAC,OAAkC,EAAE,EAAE,CACjE,eAAe,CAAC;QACd,IAAI,EAAE,uBAAa,CAAC,qBAAqB;QACzC,OAAO,EAAE,OAAO;KACjB,CAAC,CAAA;IAEJ,MAAM,aAAa,GAAG,CAAC,OAAuB,EAAE,EAAE,CAChD,eAAe,CAAC,EAAE,IAAI,EAAE,uBAAa,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IAE3E,MAAM,aAAa,GAAG,OAAO,CAAC,EAAE,CAC9B,eAAe,CAAC,EAAE,IAAI,EAAE,uBAAa,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IAE3E,MAAM,iBAAiB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"use-webchat.js","sourceRoot":"","sources":["../../../../src/webchat/hooks/use-webchat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
|
|
1
|
+
import { ButtonProps } from './index-types';
|
|
2
|
+
export declare const StyledUrlImage: import("styled-components").StyledComponent<"img", any, {}, never>;
|
|
3
|
+
export declare const Button: {
|
|
4
|
+
(props: ButtonProps): any;
|
|
5
|
+
serialize(buttonProps: ButtonProps): {
|
|
5
6
|
button: {
|
|
6
7
|
disabled: any;
|
|
7
8
|
autodisable: any;
|
|
8
9
|
disabledstyle: any;
|
|
9
|
-
payload:
|
|
10
|
-
url:
|
|
11
|
-
target:
|
|
12
|
-
webview:
|
|
13
|
-
title:
|
|
10
|
+
payload: string | undefined;
|
|
11
|
+
url: string | undefined;
|
|
12
|
+
target: string | undefined;
|
|
13
|
+
webview: string | undefined;
|
|
14
|
+
title: string;
|
|
14
15
|
};
|
|
15
16
|
};
|
|
16
|
-
}
|
|
17
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { INPUT } from '@botonic/core';
|
|
3
|
-
import
|
|
3
|
+
import { useContext, useState } from 'react';
|
|
4
4
|
import styled from 'styled-components';
|
|
5
5
|
import { COLORS, WEBCHAT } from '../constants';
|
|
6
6
|
import { WebchatContext } from '../contexts';
|
|
@@ -23,16 +23,16 @@ const StyledButton = styled.button `
|
|
|
23
23
|
border: 1px solid ${COLORS.SEASHELL_WHITE};
|
|
24
24
|
cursor: pointer;
|
|
25
25
|
outline: 0;
|
|
26
|
-
border-top-right-radius:
|
|
27
|
-
border-top-left-radius:
|
|
28
|
-
border-bottom-right-radius:
|
|
29
|
-
border-bottom-left-radius:
|
|
26
|
+
border-top-right-radius: 0px;
|
|
27
|
+
border-top-left-radius: 0px;
|
|
28
|
+
border-bottom-right-radius: 0px;
|
|
29
|
+
border-bottom-left-radius: 0px;
|
|
30
30
|
overflow: hidden;
|
|
31
31
|
`;
|
|
32
32
|
export const StyledUrlImage = styled.img `
|
|
33
33
|
width: 20px;
|
|
34
34
|
`;
|
|
35
|
-
export const Button = props => {
|
|
35
|
+
export const Button = (props) => {
|
|
36
36
|
const { webchatState, openWebview, sendPayload, sendInput, getThemeProperty, updateMessage, } = useContext(WebchatContext);
|
|
37
37
|
const [hover, setHover] = useState(false);
|
|
38
38
|
const { theme } = webchatState;
|
|
@@ -40,10 +40,11 @@ export const Button = props => {
|
|
|
40
40
|
const handleClick = event => {
|
|
41
41
|
event.preventDefault();
|
|
42
42
|
const type = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.buttonMessageType, INPUT.TEXT);
|
|
43
|
-
if (props.webview)
|
|
43
|
+
if (props.webview) {
|
|
44
44
|
openWebview(props.webview, props.params);
|
|
45
|
+
}
|
|
45
46
|
else if (props.path) {
|
|
46
|
-
type
|
|
47
|
+
type === INPUT.POSTBACK
|
|
47
48
|
? sendPayload(`__PATH_PAYLOAD__${props.path}`)
|
|
48
49
|
: sendInput({
|
|
49
50
|
type: INPUT.TEXT,
|
|
@@ -53,7 +54,7 @@ export const Button = props => {
|
|
|
53
54
|
});
|
|
54
55
|
}
|
|
55
56
|
else if (props.payload) {
|
|
56
|
-
type
|
|
57
|
+
type === INPUT.POSTBACK
|
|
57
58
|
? sendPayload(props.payload)
|
|
58
59
|
: sendInput({
|
|
59
60
|
type: INPUT.TEXT,
|
|
@@ -65,11 +66,12 @@ export const Button = props => {
|
|
|
65
66
|
else if (props.url) {
|
|
66
67
|
window.open(props.url, props.target || '_blank');
|
|
67
68
|
}
|
|
68
|
-
if (props.onClick)
|
|
69
|
+
if (props.onClick) {
|
|
69
70
|
props.onClick();
|
|
71
|
+
}
|
|
70
72
|
if (props.setDisabled) {
|
|
71
73
|
props.setDisabled(true);
|
|
72
|
-
const messageToUpdate = webchatState.messagesJSON.filter(m => m.id
|
|
74
|
+
const messageToUpdate = webchatState.messagesJSON.filter(m => m.id === props.parentId)[0];
|
|
73
75
|
const updatedMsg = ButtonsDisabler.getUpdatedMessage(messageToUpdate, {
|
|
74
76
|
autoDisable,
|
|
75
77
|
disabledStyle,
|
|
@@ -111,34 +113,46 @@ export const Button = props => {
|
|
|
111
113
|
const urlIconImageProp = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.urlIconImage);
|
|
112
114
|
const urlIconImage = urlIconImageProp !== null && urlIconImageProp !== void 0 ? urlIconImageProp : WEBCHAT.DEFAULTS.URL_ICON;
|
|
113
115
|
const urlIcon = urlIconEnabledProp || urlIconImageProp ? urlIconImage : undefined;
|
|
114
|
-
return (_jsxs(StyledButton, Object.assign({ className: getClassName(), theme: theme, onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onClick: e => handleClick(e), style: Object.assign(Object.assign(Object.assign({}, buttonStyle), { color: buttonTextColor, backgroundColor: buttonBgColor }), (props.disabled && autoDisable && disabledStyle))
|
|
116
|
+
return (_jsxs(StyledButton, Object.assign({ className: getClassName(), theme: theme, onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onClick: e => handleClick(e), style: Object.assign(Object.assign(Object.assign({}, buttonStyle), { color: buttonTextColor, backgroundColor: buttonBgColor }), (props.disabled && autoDisable && disabledStyle)) }, { children: [props.children, props.url && urlIcon && (_jsx(StyledUrlImage, { className: 'botonic-url-icon', src: resolveImage(urlIcon) }))] })));
|
|
115
117
|
};
|
|
116
118
|
const renderNode = () => {
|
|
117
119
|
const disabledProps = ButtonsDisabler.constructNodeProps(props);
|
|
118
120
|
if (props.webview) {
|
|
119
|
-
return (_jsx("button", Object.assign({
|
|
121
|
+
return (_jsx("button", Object.assign({
|
|
122
|
+
// @ts-ignore
|
|
123
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
124
|
+
url: generateWebviewUrlWithParams(props.webview, props.params) }, disabledProps, { children: props.children })));
|
|
120
125
|
}
|
|
121
|
-
|
|
126
|
+
if (props.path) {
|
|
122
127
|
const payload = `__PATH_PAYLOAD__${props.path}`;
|
|
123
|
-
return (
|
|
128
|
+
return (
|
|
129
|
+
// @ts-ignore
|
|
130
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
131
|
+
_jsx("button", Object.assign({ payload: payload }, disabledProps, { children: props.children })));
|
|
124
132
|
}
|
|
125
|
-
|
|
126
|
-
return (
|
|
133
|
+
if (props.payload) {
|
|
134
|
+
return (
|
|
135
|
+
// @ts-ignore
|
|
136
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
137
|
+
_jsx("button", Object.assign({ payload: props.payload }, disabledProps, { children: props.children })));
|
|
127
138
|
}
|
|
128
|
-
|
|
129
|
-
return (
|
|
139
|
+
if (props.url) {
|
|
140
|
+
return (
|
|
141
|
+
// @ts-ignore
|
|
142
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
143
|
+
_jsx("button", Object.assign({ url: props.url, target: props.target }, disabledProps, { children: props.children })));
|
|
130
144
|
}
|
|
131
|
-
|
|
145
|
+
if (props.onClick) {
|
|
132
146
|
return null;
|
|
133
147
|
}
|
|
134
|
-
throw new Error('Button missing payload, path,
|
|
148
|
+
throw new Error('Button missing payload, path, webview, url or onClick');
|
|
135
149
|
};
|
|
136
150
|
return renderComponent({ renderBrowser, renderNode });
|
|
137
151
|
};
|
|
138
|
-
Button.serialize = buttonProps => {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
152
|
+
Button.serialize = (buttonProps) => {
|
|
153
|
+
const payload = buttonProps.path
|
|
154
|
+
? `__PATH_PAYLOAD__${buttonProps.path}`
|
|
155
|
+
: buttonProps.payload;
|
|
142
156
|
return {
|
|
143
157
|
button: Object.assign({ payload, url: buttonProps.url, target: buttonProps.target, webview: buttonProps.webview && String(buttonProps.webview), title: buttonProps.children && String(buttonProps.children) }, ButtonsDisabler.withDisabledProps(buttonProps)),
|
|
144
158
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button.
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button.tsx"],"names":[],"mappings":"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"}
|
package/lib/esm/index-types.d.ts
CHANGED
|
@@ -114,15 +114,16 @@ export interface Event {
|
|
|
114
114
|
isError?: boolean;
|
|
115
115
|
message?: MessageInfo;
|
|
116
116
|
}
|
|
117
|
+
export type ClientInput = Omit<CoreInput, 'message_id' | 'bot_interaction_id'>;
|
|
117
118
|
export interface WebchatContextProps {
|
|
118
119
|
addMessage: (message: WebchatMessage) => void;
|
|
119
120
|
closeWebview: () => Promise<void>;
|
|
120
121
|
getThemeProperty: (property: string, defaultValue?: any) => any;
|
|
121
|
-
openWebview: (webviewComponent: Webview) => void;
|
|
122
|
+
openWebview: (webviewComponent: Webview, params?: any) => void;
|
|
122
123
|
resetUnreadMessages: () => void;
|
|
123
124
|
resolveCase: () => void;
|
|
124
125
|
sendAttachment: (attachment: File) => Promise<void>;
|
|
125
|
-
sendInput: (input:
|
|
126
|
+
sendInput: (input: ClientInput) => Promise<void>;
|
|
126
127
|
sendPayload: (payload: string) => Promise<void>;
|
|
127
128
|
sendText: (text: string, payload?: string) => Promise<void>;
|
|
128
129
|
setLastMessageVisible: (isLastMessageVisible: boolean) => void;
|
|
@@ -130,7 +131,7 @@ export interface WebchatContextProps {
|
|
|
130
131
|
toggleWebchat: (toggle: boolean) => void;
|
|
131
132
|
toggleEmojiPicker: (toggle: boolean) => void;
|
|
132
133
|
togglePersistentMenu: (toggle: boolean) => void;
|
|
133
|
-
updateLatestInput: (input:
|
|
134
|
+
updateLatestInput: (input: ClientInput) => void;
|
|
134
135
|
updateMessage: (message: WebchatMessage) => void;
|
|
135
136
|
updateReplies: (replies: boolean) => void;
|
|
136
137
|
updateUser: (user: Partial<CoreSessionUser>) => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
2
|
+
import { Session } from '@botonic/core';
|
|
3
3
|
import { ThemeProps, Webview } from '../../components/index-types';
|
|
4
|
-
import { WebchatMessage } from '../../index-types';
|
|
4
|
+
import { ClientInput, WebchatMessage } from '../../index-types';
|
|
5
5
|
import { WebchatAction } from '../actions';
|
|
6
6
|
import { DevSettings, ErrorMessage, WebchatState } from '../index-types';
|
|
7
7
|
export declare const webchatInitialState: WebchatState;
|
|
@@ -25,7 +25,7 @@ export declare function useWebchat(): {
|
|
|
25
25
|
updateHandoff: (handoff: boolean) => void;
|
|
26
26
|
updateLastMessageDate: (date: string) => void;
|
|
27
27
|
updateLastRoutePath: (path: string) => void;
|
|
28
|
-
updateLatestInput: (input:
|
|
28
|
+
updateLatestInput: (input: ClientInput) => void;
|
|
29
29
|
updateMessage: (message: WebchatMessage) => void;
|
|
30
30
|
updateReplies: (replies: any) => void;
|
|
31
31
|
updateSession: (session: Session) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-webchat.js","sourceRoot":"","sources":["../../../../src/webchat/hooks/use-webchat.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"use-webchat.js","sourceRoot":"","sources":["../../../../src/webchat/hooks/use-webchat.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0-alpha.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Build Chatbots using React",
|
|
6
6
|
"main": "./lib/cjs",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"emoji-picker-react": "^4.4.9",
|
|
26
26
|
"lodash.merge": "^4.6.2",
|
|
27
27
|
"markdown-it": "^12.0.6",
|
|
28
|
-
"react": "^
|
|
29
|
-
"react-dom": "^
|
|
28
|
+
"react": "^17.0.0",
|
|
29
|
+
"react-dom": "^17.0.0",
|
|
30
30
|
"react-json-tree": "^0.15.0",
|
|
31
31
|
"react-router-dom": "^5.3.4",
|
|
32
32
|
"react-textarea-autosize": "^8.5.3",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"copyfiles": "^2.4.1",
|
|
49
49
|
"identity-obj-proxy": "^3.0.0",
|
|
50
50
|
"intersection-observer": "^0.12.2",
|
|
51
|
-
"react-test-renderer": "^
|
|
51
|
+
"react-test-renderer": "^17.0.0",
|
|
52
52
|
"typescript": "5.0.4"
|
|
53
53
|
},
|
|
54
54
|
"engines": {
|
|
@@ -8,6 +8,7 @@ import { resolveImage } from '../util/environment'
|
|
|
8
8
|
import { renderComponent } from '../util/react'
|
|
9
9
|
import { generateWebviewUrlWithParams } from '../util/webviews'
|
|
10
10
|
import { ButtonsDisabler } from './buttons-disabler'
|
|
11
|
+
import { ButtonProps } from './index-types'
|
|
11
12
|
|
|
12
13
|
const StyledButton = styled.button`
|
|
13
14
|
display: flex;
|
|
@@ -24,10 +25,10 @@ const StyledButton = styled.button`
|
|
|
24
25
|
border: 1px solid ${COLORS.SEASHELL_WHITE};
|
|
25
26
|
cursor: pointer;
|
|
26
27
|
outline: 0;
|
|
27
|
-
border-top-right-radius:
|
|
28
|
-
border-top-left-radius:
|
|
29
|
-
border-bottom-right-radius:
|
|
30
|
-
border-bottom-left-radius:
|
|
28
|
+
border-top-right-radius: 0px;
|
|
29
|
+
border-top-left-radius: 0px;
|
|
30
|
+
border-bottom-right-radius: 0px;
|
|
31
|
+
border-bottom-left-radius: 0px;
|
|
31
32
|
overflow: hidden;
|
|
32
33
|
`
|
|
33
34
|
|
|
@@ -35,7 +36,7 @@ export const StyledUrlImage = styled.img`
|
|
|
35
36
|
width: 20px;
|
|
36
37
|
`
|
|
37
38
|
|
|
38
|
-
export const Button = props => {
|
|
39
|
+
export const Button = (props: ButtonProps) => {
|
|
39
40
|
const {
|
|
40
41
|
webchatState,
|
|
41
42
|
openWebview,
|
|
@@ -50,15 +51,19 @@ export const Button = props => {
|
|
|
50
51
|
webchatState.theme,
|
|
51
52
|
props
|
|
52
53
|
)
|
|
54
|
+
|
|
53
55
|
const handleClick = event => {
|
|
54
56
|
event.preventDefault()
|
|
57
|
+
|
|
55
58
|
const type = getThemeProperty(
|
|
56
59
|
WEBCHAT.CUSTOM_PROPERTIES.buttonMessageType,
|
|
57
60
|
INPUT.TEXT
|
|
58
61
|
)
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
|
|
63
|
+
if (props.webview) {
|
|
64
|
+
openWebview(props.webview, props.params)
|
|
65
|
+
} else if (props.path) {
|
|
66
|
+
type === INPUT.POSTBACK
|
|
62
67
|
? sendPayload(`__PATH_PAYLOAD__${props.path}`)
|
|
63
68
|
: sendInput({
|
|
64
69
|
type: INPUT.TEXT,
|
|
@@ -67,7 +72,7 @@ export const Button = props => {
|
|
|
67
72
|
payload: `__PATH_PAYLOAD__${props.path}`,
|
|
68
73
|
})
|
|
69
74
|
} else if (props.payload) {
|
|
70
|
-
type
|
|
75
|
+
type === INPUT.POSTBACK
|
|
71
76
|
? sendPayload(props.payload)
|
|
72
77
|
: sendInput({
|
|
73
78
|
type: INPUT.TEXT,
|
|
@@ -78,11 +83,15 @@ export const Button = props => {
|
|
|
78
83
|
} else if (props.url) {
|
|
79
84
|
window.open(props.url, props.target || '_blank')
|
|
80
85
|
}
|
|
81
|
-
|
|
86
|
+
|
|
87
|
+
if (props.onClick) {
|
|
88
|
+
props.onClick()
|
|
89
|
+
}
|
|
90
|
+
|
|
82
91
|
if (props.setDisabled) {
|
|
83
92
|
props.setDisabled(true)
|
|
84
93
|
const messageToUpdate = webchatState.messagesJSON.filter(
|
|
85
|
-
m => m.id
|
|
94
|
+
m => m.id === props.parentId
|
|
86
95
|
)[0]
|
|
87
96
|
const updatedMsg = ButtonsDisabler.getUpdatedMessage(messageToUpdate, {
|
|
88
97
|
autoDisable,
|
|
@@ -116,6 +125,7 @@ export const Button = props => {
|
|
|
116
125
|
const CustomButton = getThemeProperty(
|
|
117
126
|
WEBCHAT.CUSTOM_PROPERTIES.customButton
|
|
118
127
|
)
|
|
128
|
+
|
|
119
129
|
if (CustomButton) {
|
|
120
130
|
return (
|
|
121
131
|
<div className={getClassName(true)} onClick={e => handleClick(e)}>
|
|
@@ -133,6 +143,7 @@ export const Button = props => {
|
|
|
133
143
|
WEBCHAT.CUSTOM_PROPERTIES.buttonStyleBackground,
|
|
134
144
|
COLORS.SOLID_WHITE
|
|
135
145
|
)
|
|
146
|
+
|
|
136
147
|
const buttonTextColor = hover
|
|
137
148
|
? getThemeProperty(
|
|
138
149
|
WEBCHAT.CUSTOM_PROPERTIES.buttonHoverTextColor,
|
|
@@ -169,7 +180,6 @@ export const Button = props => {
|
|
|
169
180
|
backgroundColor: buttonBgColor,
|
|
170
181
|
...(props.disabled && autoDisable && disabledStyle),
|
|
171
182
|
}}
|
|
172
|
-
bottom={props.bottomRadius}
|
|
173
183
|
>
|
|
174
184
|
{props.children}
|
|
175
185
|
{props.url && urlIcon && (
|
|
@@ -187,43 +197,62 @@ export const Button = props => {
|
|
|
187
197
|
if (props.webview) {
|
|
188
198
|
return (
|
|
189
199
|
<button
|
|
200
|
+
// @ts-ignore
|
|
201
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
190
202
|
url={generateWebviewUrlWithParams(props.webview, props.params)}
|
|
191
203
|
{...disabledProps}
|
|
192
204
|
>
|
|
193
205
|
{props.children}
|
|
194
206
|
</button>
|
|
195
207
|
)
|
|
196
|
-
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
if (props.path) {
|
|
197
211
|
const payload = `__PATH_PAYLOAD__${props.path}`
|
|
198
212
|
return (
|
|
213
|
+
// @ts-ignore
|
|
214
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
199
215
|
<button payload={payload} {...disabledProps}>
|
|
200
216
|
{props.children}
|
|
201
217
|
</button>
|
|
202
218
|
)
|
|
203
|
-
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
if (props.payload) {
|
|
204
222
|
return (
|
|
223
|
+
// @ts-ignore
|
|
224
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
205
225
|
<button payload={props.payload} {...disabledProps}>
|
|
206
226
|
{props.children}
|
|
207
227
|
</button>
|
|
208
228
|
)
|
|
209
|
-
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
if (props.url) {
|
|
210
232
|
return (
|
|
233
|
+
// @ts-ignore
|
|
234
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
211
235
|
<button url={props.url} target={props.target} {...disabledProps}>
|
|
212
236
|
{props.children}
|
|
213
237
|
</button>
|
|
214
238
|
)
|
|
215
|
-
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
if (props.onClick) {
|
|
216
242
|
return null
|
|
217
243
|
}
|
|
218
|
-
|
|
244
|
+
|
|
245
|
+
throw new Error('Button missing payload, path, webview, url or onClick')
|
|
219
246
|
}
|
|
220
247
|
|
|
221
248
|
return renderComponent({ renderBrowser, renderNode })
|
|
222
249
|
}
|
|
223
250
|
|
|
224
|
-
Button.serialize = buttonProps => {
|
|
225
|
-
|
|
226
|
-
|
|
251
|
+
Button.serialize = (buttonProps: ButtonProps) => {
|
|
252
|
+
const payload = buttonProps.path
|
|
253
|
+
? `__PATH_PAYLOAD__${buttonProps.path}`
|
|
254
|
+
: buttonProps.payload
|
|
255
|
+
|
|
227
256
|
return {
|
|
228
257
|
button: {
|
|
229
258
|
payload,
|
package/src/index-types.ts
CHANGED
|
@@ -148,15 +148,18 @@ export interface Event {
|
|
|
148
148
|
message?: MessageInfo
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
+
// ClientInput: type for sendInput and updateLatestInput function without message_id and bot_interaction_id because backend set this values
|
|
152
|
+
export type ClientInput = Omit<CoreInput, 'message_id' | 'bot_interaction_id'>
|
|
153
|
+
|
|
151
154
|
export interface WebchatContextProps {
|
|
152
155
|
addMessage: (message: WebchatMessage) => void
|
|
153
156
|
closeWebview: () => Promise<void>
|
|
154
157
|
getThemeProperty: (property: string, defaultValue?: any) => any
|
|
155
|
-
openWebview: (webviewComponent: Webview) => void
|
|
158
|
+
openWebview: (webviewComponent: Webview, params?: any) => void
|
|
156
159
|
resetUnreadMessages: () => void
|
|
157
160
|
resolveCase: () => void
|
|
158
161
|
sendAttachment: (attachment: File) => Promise<void>
|
|
159
|
-
sendInput: (input:
|
|
162
|
+
sendInput: (input: ClientInput) => Promise<void>
|
|
160
163
|
sendPayload: (payload: string) => Promise<void>
|
|
161
164
|
sendText: (text: string, payload?: string) => Promise<void>
|
|
162
165
|
setLastMessageVisible: (isLastMessageVisible: boolean) => void
|
|
@@ -164,7 +167,7 @@ export interface WebchatContextProps {
|
|
|
164
167
|
toggleWebchat: (toggle: boolean) => void
|
|
165
168
|
toggleEmojiPicker: (toggle: boolean) => void
|
|
166
169
|
togglePersistentMenu: (toggle: boolean) => void
|
|
167
|
-
updateLatestInput: (input:
|
|
170
|
+
updateLatestInput: (input: ClientInput) => void
|
|
168
171
|
updateMessage: (message: WebchatMessage) => void
|
|
169
172
|
updateReplies: (replies: boolean) => void
|
|
170
173
|
updateUser: (user: Partial<CoreSessionUser>) => void
|
|
@@ -3,7 +3,7 @@ import { useReducer, useRef } from 'react'
|
|
|
3
3
|
|
|
4
4
|
import { ThemeProps, Webview } from '../../components/index-types'
|
|
5
5
|
import { COLORS, WEBCHAT } from '../../constants'
|
|
6
|
-
import { WebchatMessage } from '../../index-types'
|
|
6
|
+
import { ClientInput, WebchatMessage } from '../../index-types'
|
|
7
7
|
import { WebchatAction } from '../actions'
|
|
8
8
|
import { DevSettings, ErrorMessage, WebchatState } from '../index-types'
|
|
9
9
|
import { webchatReducer } from '../webchat-reducer'
|
|
@@ -74,7 +74,7 @@ export function useWebchat() {
|
|
|
74
74
|
const updateReplies = replies =>
|
|
75
75
|
webchatDispatch({ type: WebchatAction.UPDATE_REPLIES, payload: replies })
|
|
76
76
|
|
|
77
|
-
const updateLatestInput = (input:
|
|
77
|
+
const updateLatestInput = (input: ClientInput) =>
|
|
78
78
|
webchatDispatch({ type: WebchatAction.UPDATE_LATEST_INPUT, payload: input })
|
|
79
79
|
|
|
80
80
|
const updateTyping = (typing: boolean) =>
|