@zohoim/chat-components 0.0.14 → 0.0.15
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/es/ActionIconWrapper/ActionIconWrapper.js +9 -1
- package/es/ActionIconWrapper/css/ActionIconWrapper.module.css +5 -0
- package/es/ActionIconWrapper/css/cssJSLogic.js +14 -0
- package/es/AttachmentBubble/AttachmentBubble.js +3 -2
- package/es/AttachmentBubble/css/AttachmentBubble.module.css +1 -0
- package/es/AttachmentBubbleInfo/AttachmentBubbleInfo.js +8 -4
- package/es/AttachmentBubbleInfo/css/AttachmentBubbleInfo.module.css +2 -3
- package/es/AttachmentIcon/utils/getAttachmentIconComponent.js +9 -3
- package/es/AudioBubble/AudioBubble.js +16 -3
- package/es/AudioBubble/css/AudioBubble.module.css +4 -0
- package/es/AudioBubble/props/defaultProps.js +1 -0
- package/es/LocationBubble/LocationBubble.js +3 -2
- package/es/LocationBubble/css/LocationBubble.module.css +3 -4
- package/es/MediaBubbleWrapper/MediaBubbleWrapper.js +2 -2
- package/es/MediaBubbleWrapper/css/MediaBubbleWrapper.module.css +4 -0
- package/es/MessageActions/MessageActions.js +4 -2
- package/es/MessageBox/MessageBox.js +11 -7
- package/es/MessageBox/css/MessageBox.module.css +1 -6
- package/es/MessageBubble/MessageBubble.js +9 -6
- package/es/MoreActionItem/css/MoreActionItem.module.css +1 -3
- package/es/ReplyBubble/ReplyBubble.js +4 -5
- package/es/ReplyBubble/css/ReplyBubble.module.css +2 -2
- package/es/ReplyBubbleContent/ReplyBubbleContent.js +5 -4
- package/es/ReplyBubbleContent/css/ReplyBubbleContent.module.css +1 -4
- package/es/ReplyBubbleHeader/ReplyBubbleHeader.js +6 -6
- package/es/ReplyBubbleHeader/css/ReplyBubbleHeader.module.css +25 -6
- package/es/TextBubble/TextBubble.js +2 -2
- package/es/TextBubble/css/TextBubble.module.css +3 -1
- package/es/Theme/ThemeWrapper.js +2 -2
- package/es/Theme/themeVariables/dark/blueTheme.js +1 -1
- package/es/Theme/themeVariables/dark/greenTheme.js +1 -1
- package/es/Theme/themeVariables/dark/orangeTheme.js +1 -1
- package/es/Theme/themeVariables/dark/redTheme.js +1 -1
- package/es/Theme/themeVariables/dark/yellowTheme.js +1 -1
- package/es/Theme/themeVariables/light/blueTheme.js +1 -1
- package/es/Theme/themeVariables/light/greenTheme.js +1 -1
- package/es/Theme/themeVariables/light/orangeTheme.js +1 -1
- package/es/Theme/themeVariables/light/redTheme.js +1 -1
- package/es/Theme/themeVariables/light/yellowTheme.js +1 -1
- package/es/Theme/themeVariables/pureDark/blueTheme.js +1 -1
- package/es/Theme/themeVariables/pureDark/greenTheme.js +1 -1
- package/es/Theme/themeVariables/pureDark/orangeTheme.js +1 -1
- package/es/Theme/themeVariables/pureDark/redTheme.js +1 -1
- package/es/Theme/themeVariables/pureDark/yellowTheme.js +1 -1
- package/es/VideoBubble/VideoBubble.js +2 -1
- package/es/css/common.module.css +6 -0
- package/es/icons/factory/common/article.svg +4 -4
- package/es/icons/factory/integrations/chInstagram.svg +2 -2
- package/es/icons/factory/integrations/chWhatsApp.svg +2 -2
- package/es/icons/factory/integrations/ttASAP.svg +6 -1
- package/es/icons/factory/integrations/ttLine.svg +8 -0
- package/es/icons/factory/integrations/ttTelegram.svg +4 -1
- package/es/icons/factory/integrations/ttTwillio.svg +8 -1
- package/es/icons/factory/integrations/ttWechat.svg +9 -1
- package/es/icons/iconSrc/common/Article.js +2 -3
- package/es/icons/iconSrc/integrations/ChInstagram.js +2 -3
- package/es/icons/iconSrc/integrations/ChWhatsApp.js +2 -3
- package/es/icons/iconSrc/integrations/TtASAP.js +11 -15
- package/es/icons/iconSrc/integrations/{TtTwitter.js → TtLine.js} +14 -18
- package/es/icons/iconSrc/integrations/TtTelegram.js +8 -12
- package/es/icons/iconSrc/integrations/TtTwillio.js +15 -19
- package/es/icons/iconSrc/integrations/TtWechat.js +19 -20
- package/es/icons/iconSrc/integrations/index.js +1 -1
- package/es/im/ArticleBubble/ArticleBubble.js +9 -8
- package/es/im/ArticleBubble/css/ArticleBubble.module.css +23 -13
- package/es/im/IMIntegrationIcon/IMIntegrationIcon.js +1 -1
- package/es/im/IMMessage/IMMessage.js +30 -8
- package/es/im/{IMTicketLink/css/IMTicketLink.module.css → IMMessage/css/IMMessage.module.css} +21 -11
- package/es/im/IMMessage/css/cssJSLogic.js +23 -0
- package/es/im/IMMessage/props/defaultProps.js +2 -1
- package/es/im/IMMessage/props/propTypes.js +3 -1
- package/es/im/IMMessageContent/IMMessageContent.js +5 -3
- package/es/im/IMMessageContent/props/propTypes.js +1 -0
- package/es/im/IMMessageMeta/css/IMMessageMeta.module.css +1 -3
- package/es/im/IMPermaLink/IMPermaLink.js +48 -0
- package/es/im/IMPermaLink/css/IMPermaLink.module.css +14 -0
- package/es/im/{IMTicketLink → IMPermaLink}/css/cssJSLogic.js +3 -3
- package/es/im/IMPermaLink/index.js +1 -0
- package/es/im/{IMTicketLink → IMPermaLink}/props/defaultProps.js +2 -2
- package/es/im/IMPermaLink/props/propTypes.js +11 -0
- package/es/im/css/common.module.css +6 -0
- package/es/im/index.js +1 -1
- package/package.json +4 -4
- package/es/icons/factory/integrations/ttTwitter.svg +0 -1
- package/es/im/IMTicketLink/IMTicketLink.js +0 -48
- package/es/im/IMTicketLink/index.js +0 -1
- package/es/im/IMTicketLink/props/propTypes.js +0 -11
|
@@ -11,6 +11,7 @@ import actionIconWrapperPropTypes from './props/propTypes';
|
|
|
11
11
|
/** ** Methods *** */
|
|
12
12
|
|
|
13
13
|
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
14
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
14
15
|
/** ** Styles *** */
|
|
15
16
|
|
|
16
17
|
import style from './css/ActionIconWrapper.module.css';
|
|
@@ -33,13 +34,20 @@ export default function ActionIconWrapper(props) {
|
|
|
33
34
|
/* External CSS Customization */
|
|
34
35
|
|
|
35
36
|
const newStyle = useMergeStyle(style, customStyle);
|
|
37
|
+
/* css classnames added based on logic */
|
|
38
|
+
|
|
39
|
+
const {
|
|
40
|
+
actionIconWrapperClass
|
|
41
|
+
} = cssJSLogic({
|
|
42
|
+
isDisabled
|
|
43
|
+
}, newStyle);
|
|
36
44
|
/* Render Icon */
|
|
37
45
|
|
|
38
46
|
const icon = renderHandler(renderIcon)({
|
|
39
47
|
id
|
|
40
48
|
});
|
|
41
49
|
return icon ? /*#__PURE__*/React.createElement("div", {
|
|
42
|
-
className:
|
|
50
|
+
className: actionIconWrapperClass,
|
|
43
51
|
"data-title": title,
|
|
44
52
|
onClick: onClick
|
|
45
53
|
}, icon) : null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
2
|
+
import { compileClassNames } from '@zohodesk/utils';
|
|
3
|
+
export default function cssJSLogic(props, style) {
|
|
4
|
+
const {
|
|
5
|
+
isDisabled
|
|
6
|
+
} = props;
|
|
7
|
+
const actionIconWrapperClass = compileClassNames({
|
|
8
|
+
[style.actionIconWrapper]: true,
|
|
9
|
+
[style.disabled]: isDisabled
|
|
10
|
+
});
|
|
11
|
+
return {
|
|
12
|
+
actionIconWrapperClass
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -40,8 +40,9 @@ export default function AttachmentBubble(props) {
|
|
|
40
40
|
});
|
|
41
41
|
return /*#__PURE__*/React.createElement(Container, {
|
|
42
42
|
alignBox: "row",
|
|
43
|
-
className: newStyle.attachmentBubble
|
|
44
|
-
|
|
43
|
+
className: newStyle.attachmentBubble,
|
|
44
|
+
isCover: false
|
|
45
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
45
46
|
className: newStyle.attachmentBubbleIcon
|
|
46
47
|
}, /*#__PURE__*/React.createElement(AttachmentIcon, _extends({
|
|
47
48
|
fileFormat: fileFormat
|
|
@@ -7,6 +7,9 @@ import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
|
7
7
|
|
|
8
8
|
import attachmentBubbleInfoDefaultProps from './props/defaultProps';
|
|
9
9
|
import attachmentBubbleInfoPropTypes from './props/propTypes';
|
|
10
|
+
/** ** Components *** */
|
|
11
|
+
|
|
12
|
+
import { Container, Box } from '@zohodesk/components/es/Layout';
|
|
10
13
|
/** ** Styles *** */
|
|
11
14
|
|
|
12
15
|
import style from './css/AttachmentBubbleInfo.module.css';
|
|
@@ -19,11 +22,12 @@ export default function AttachmentBubbleInfo(props) {
|
|
|
19
22
|
/* External css customization */
|
|
20
23
|
|
|
21
24
|
const newStyle = useMergeStyle(style, customStyle);
|
|
22
|
-
return /*#__PURE__*/React.createElement(
|
|
23
|
-
className: newStyle.attachmentBubbleInfo
|
|
24
|
-
|
|
25
|
+
return /*#__PURE__*/React.createElement(Container, {
|
|
26
|
+
className: newStyle.attachmentBubbleInfo,
|
|
27
|
+
isCover: false
|
|
28
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
25
29
|
className: newStyle.fileName
|
|
26
|
-
}, fileName), /*#__PURE__*/React.createElement(
|
|
30
|
+
}, fileName), /*#__PURE__*/React.createElement(Box, {
|
|
27
31
|
className: newStyle.fileSize
|
|
28
32
|
}, fileSize));
|
|
29
33
|
}
|
|
@@ -20,11 +20,10 @@
|
|
|
20
20
|
|
|
21
21
|
.fileName,
|
|
22
22
|
.fileSize {
|
|
23
|
-
|
|
24
|
-
overflow: hidden;
|
|
25
|
-
text-overflow: ellipsis;
|
|
23
|
+
composes: dotted from "../../css/common.module.css";
|
|
26
24
|
}
|
|
27
25
|
|
|
28
26
|
.attachmentBubbleInfo {
|
|
27
|
+
width: 100% ;
|
|
29
28
|
/* Use this class name for css customization */
|
|
30
29
|
}
|
|
@@ -17,6 +17,9 @@ const {
|
|
|
17
17
|
AUDIO,
|
|
18
18
|
VIDEO,
|
|
19
19
|
MP3,
|
|
20
|
+
MPEG,
|
|
21
|
+
VORBIS,
|
|
22
|
+
OGG,
|
|
20
23
|
M4A,
|
|
21
24
|
MP4,
|
|
22
25
|
HTML,
|
|
@@ -32,23 +35,26 @@ export default function getAttachmentIconComponent(_ref) {
|
|
|
32
35
|
fileFormat
|
|
33
36
|
} = _ref;
|
|
34
37
|
const iconMapping = {
|
|
35
|
-
[SVG]:
|
|
38
|
+
[SVG]: CodeIcon,
|
|
36
39
|
[IMAGE]: ImageIcon,
|
|
37
40
|
[PDF]: PdfIcon,
|
|
38
41
|
[AUDIO]: AudioIcon,
|
|
39
42
|
[VIDEO]: VideoIcon,
|
|
40
43
|
[MP3]: AudioIcon,
|
|
44
|
+
[MPEG]: AudioIcon,
|
|
45
|
+
[VORBIS]: AudioIcon,
|
|
46
|
+
[OGG]: AudioIcon,
|
|
41
47
|
[M4A]: AudioIcon,
|
|
42
48
|
[MP4]: VideoIcon,
|
|
43
49
|
[HTML]: CodeIcon,
|
|
44
50
|
[PSD]: UnknownIcon,
|
|
45
51
|
[CSS]: CodeIcon,
|
|
46
52
|
[TEXT]: TextIcon,
|
|
47
|
-
[PLAIN]:
|
|
53
|
+
[PLAIN]: TextIcon,
|
|
48
54
|
[ZIP]: ZipIcon,
|
|
49
55
|
[UNDEFINED]: UnknownIcon
|
|
50
56
|
};
|
|
51
|
-
const IconComponent = iconMapping[fileFormat];
|
|
57
|
+
const IconComponent = iconMapping[fileFormat] || iconMapping[UNDEFINED];
|
|
52
58
|
return {
|
|
53
59
|
IconComponent
|
|
54
60
|
};
|
|
@@ -2,17 +2,25 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
2
2
|
|
|
3
3
|
/** ** Libraries *** */
|
|
4
4
|
import React, { useCallback } from 'react';
|
|
5
|
+
/** ** Hooks *** */
|
|
6
|
+
|
|
7
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
5
8
|
/** ** Constants *** */
|
|
6
9
|
|
|
7
10
|
import audioBubbleDefaultProps from './props/defaultProps';
|
|
8
11
|
import audioBubblePropTypes from './props/propTypes';
|
|
9
12
|
import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
|
|
13
|
+
/** ** Styles *** */
|
|
14
|
+
|
|
15
|
+
import style from './css/AudioBubble.module.css';
|
|
10
16
|
/** ** Components *** */
|
|
11
17
|
|
|
18
|
+
import { Box } from '@zohodesk/components/es/Layout';
|
|
12
19
|
import MediaBubbleWrapper from '../MediaBubbleWrapper/MediaBubbleWrapper';
|
|
13
20
|
import Audio from '../Audio/Audio';
|
|
14
21
|
export default function AudioBubble(props) {
|
|
15
22
|
const {
|
|
23
|
+
customStyle,
|
|
16
24
|
audioDetails,
|
|
17
25
|
customProps
|
|
18
26
|
} = props;
|
|
@@ -20,16 +28,21 @@ export default function AudioBubble(props) {
|
|
|
20
28
|
audioProps = dummyObject,
|
|
21
29
|
mediaBubbleWrapperProps = dummyObject
|
|
22
30
|
} = customProps;
|
|
31
|
+
/* External CSS Customization */
|
|
32
|
+
|
|
33
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
23
34
|
const renderMedia = useCallback(_ref => {
|
|
24
35
|
let {
|
|
25
36
|
fileURL,
|
|
26
37
|
fileType
|
|
27
38
|
} = _ref;
|
|
28
|
-
return /*#__PURE__*/React.createElement(
|
|
39
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
40
|
+
className: newStyle.audioBubble
|
|
41
|
+
}, /*#__PURE__*/React.createElement(Audio, _extends({
|
|
29
42
|
fileType: fileType,
|
|
30
43
|
fileURL: fileURL
|
|
31
|
-
}, audioProps));
|
|
32
|
-
}, [audioProps]);
|
|
44
|
+
}, audioProps)));
|
|
45
|
+
}, [audioProps, newStyle.audioBubble]);
|
|
33
46
|
return /*#__PURE__*/React.createElement(MediaBubbleWrapper, _extends({
|
|
34
47
|
mediaDetails: audioDetails,
|
|
35
48
|
renderMedia: renderMedia
|
|
@@ -24,7 +24,8 @@ export default function LocationBubble(props) {
|
|
|
24
24
|
return /*#__PURE__*/React.createElement(Container, {
|
|
25
25
|
align: "vertical",
|
|
26
26
|
alignBox: "row",
|
|
27
|
-
className: newStyle.locationBubble
|
|
27
|
+
className: newStyle.locationBubble,
|
|
28
|
+
isCover: false
|
|
28
29
|
}, /*#__PURE__*/React.createElement(Box, {
|
|
29
30
|
className: newStyle.imageWrapper,
|
|
30
31
|
shrink: true
|
|
@@ -32,7 +33,7 @@ export default function LocationBubble(props) {
|
|
|
32
33
|
href: locationUrl,
|
|
33
34
|
rel: "noreferrer noopener",
|
|
34
35
|
target: "_blank"
|
|
35
|
-
}, /*#__PURE__*/React.createElement(
|
|
36
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
36
37
|
className: newStyle.image
|
|
37
38
|
}))), /*#__PURE__*/React.createElement(Box, {
|
|
38
39
|
className: newStyle.textWrapper,
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
.locationBubble {
|
|
7
7
|
white-space: nowrap;
|
|
8
8
|
width: 100% ;
|
|
9
|
+
box-sizing: border-box;
|
|
9
10
|
background-color: var(--imlib_chat_components_locationBubble_bg_color);
|
|
10
11
|
border: 1px solid var(--imlib_chat_components_locationBubble_border_color);
|
|
11
12
|
padding: var(--zd_size10) ;
|
|
12
|
-
border-radius: 3px;
|
|
13
|
+
border-radius: 3px;
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
.image {
|
|
@@ -31,8 +32,6 @@
|
|
|
31
32
|
|
|
32
33
|
.textLink {
|
|
33
34
|
display: block;
|
|
34
|
-
|
|
35
|
-
overflow: hidden;
|
|
36
|
-
text-overflow: ellipsis;
|
|
35
|
+
composes: dotted from "../../css/common.module.css";
|
|
37
36
|
color: var(--imlib_chat_components_locationBubble_color);
|
|
38
37
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
/** ** Libraries *** */
|
|
4
|
-
import React, { useMemo } from 'react';
|
|
4
|
+
import React, { useMemo, Fragment } from 'react';
|
|
5
5
|
/** ** Hooks *** */
|
|
6
6
|
|
|
7
7
|
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
@@ -48,7 +48,7 @@ export default function MediaBubbleWrapper(props) {
|
|
|
48
48
|
fileURL,
|
|
49
49
|
fileType
|
|
50
50
|
});
|
|
51
|
-
return /*#__PURE__*/React.createElement(
|
|
51
|
+
return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(AttachmentBubbleInfo, _extends({
|
|
52
52
|
customStyle: bubbleInfoCustomStyle,
|
|
53
53
|
fileName: fileName,
|
|
54
54
|
fileSize: fileSize
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
/** ** Libraries *** */
|
|
4
|
-
import React, { useCallback } from 'react';
|
|
4
|
+
import React, { useCallback, Fragment } from 'react';
|
|
5
5
|
/** ** Components *** */
|
|
6
6
|
|
|
7
7
|
import ActionIconWrapper from '../ActionIconWrapper/ActionIconWrapper';
|
|
@@ -52,6 +52,8 @@ export default function MessageActions(props) {
|
|
|
52
52
|
e
|
|
53
53
|
});
|
|
54
54
|
}, [onSelect]);
|
|
55
|
+
/* External Action Icon */
|
|
56
|
+
|
|
55
57
|
const renderAction = useCallback(function () {
|
|
56
58
|
let {
|
|
57
59
|
id,
|
|
@@ -95,7 +97,7 @@ export default function MessageActions(props) {
|
|
|
95
97
|
renderIcon: renderMoreIcon
|
|
96
98
|
}, actionIconWrapperProps)), [actionIconWrapperProps, renderMoreIcon]);
|
|
97
99
|
const secondaryActions = renderHandler(renderSecondaryActions)();
|
|
98
|
-
return /*#__PURE__*/React.createElement(
|
|
100
|
+
return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(MessageActionsWrapper, _extends({
|
|
99
101
|
actions: allActions,
|
|
100
102
|
defaultShowCount: defaultShowCount,
|
|
101
103
|
renderMoreIcon: renderMore
|
|
@@ -11,6 +11,9 @@ import messageBoxPropTypes from './props/propTypes';
|
|
|
11
11
|
|
|
12
12
|
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
13
13
|
import cssJSLogic from './css/cssJSLogic';
|
|
14
|
+
/** ** Components *** */
|
|
15
|
+
|
|
16
|
+
import { Container, Box } from '@zohodesk/components/es/Layout';
|
|
14
17
|
/** ** Styles *** */
|
|
15
18
|
|
|
16
19
|
import style from './css/MessageBox.module.css';
|
|
@@ -43,17 +46,18 @@ export default function MessageBox(props) {
|
|
|
43
46
|
const messageConent = renderHandler(renderMessageContent)();
|
|
44
47
|
const messageFooter = renderHandler(renderMessageFooter)();
|
|
45
48
|
const messageStatus = renderHandler(renderMessageStatus)();
|
|
46
|
-
return /*#__PURE__*/React.createElement(
|
|
49
|
+
return /*#__PURE__*/React.createElement(Container, {
|
|
47
50
|
className: messageBoxClass
|
|
48
|
-
}, /*#__PURE__*/React.createElement(
|
|
49
|
-
className: newStyle.messageBoxInner
|
|
50
|
-
|
|
51
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
52
|
+
className: newStyle.messageBoxInner,
|
|
53
|
+
flexible: true
|
|
54
|
+
}, messageHeader ? /*#__PURE__*/React.createElement(Box, {
|
|
51
55
|
className: newStyle.messageHeaderWrapper
|
|
52
|
-
}, messageHeader) : null, messageConent ? /*#__PURE__*/React.createElement(
|
|
56
|
+
}, messageHeader) : null, messageConent ? /*#__PURE__*/React.createElement(Box, {
|
|
53
57
|
className: newStyle.messageContentWrapper
|
|
54
|
-
}, messageConent) : null, messageFooter ? /*#__PURE__*/React.createElement(
|
|
58
|
+
}, messageConent) : null, messageFooter ? /*#__PURE__*/React.createElement(Box, {
|
|
55
59
|
className: newStyle.messageFooterWrapper
|
|
56
|
-
}, messageFooter) : null), messageStatus ? /*#__PURE__*/React.createElement(
|
|
60
|
+
}, messageFooter) : null), messageStatus ? /*#__PURE__*/React.createElement(Box, {
|
|
57
61
|
className: newStyle.messageStatusWrapper
|
|
58
62
|
}, messageStatus) : null);
|
|
59
63
|
}
|
|
@@ -18,17 +18,12 @@
|
|
|
18
18
|
/* max-width: var(--messageBox-max_width); */
|
|
19
19
|
word-wrap: break-word;
|
|
20
20
|
font-size: var(--messageBox-content_size);
|
|
21
|
+
box-sizing: border-box;
|
|
21
22
|
background-color: var(--imlib_chat_components_messageBox_bg_color);
|
|
22
23
|
padding: var(--messageBox-content_padding);
|
|
23
24
|
border-radius: var(--messageBox-border_radius);
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
.messageBoxInner {
|
|
27
|
-
flex: 1 ;
|
|
28
|
-
min-width: 0 ;
|
|
29
|
-
min-height: 0 ;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
27
|
.messageContentWrapper {
|
|
33
28
|
/* Use this class for message content customization */
|
|
34
29
|
line-height: 150%;
|
|
@@ -12,6 +12,9 @@ import messageBubblePropTypes from './props/propTypes';
|
|
|
12
12
|
|
|
13
13
|
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
14
14
|
import cssJSLogic from './css/cssJSLogic';
|
|
15
|
+
/** ** Components *** */
|
|
16
|
+
|
|
17
|
+
import { Container, Box } from '@zohodesk/components/es/Layout';
|
|
15
18
|
/** ** Styles *** */
|
|
16
19
|
|
|
17
20
|
import style from './css/MessageBubble.module.css';
|
|
@@ -50,7 +53,7 @@ export default function MessageBubble(props) {
|
|
|
50
53
|
|
|
51
54
|
const messageSenderRenderer = useCallback(() => {
|
|
52
55
|
const messageOwner = renderHandler(renderMessageOwner)();
|
|
53
|
-
return needSender ? /*#__PURE__*/React.createElement(
|
|
56
|
+
return needSender ? /*#__PURE__*/React.createElement(Box, {
|
|
54
57
|
className: newStyle.messageOwnerWrapper
|
|
55
58
|
}, messageOwner) : null;
|
|
56
59
|
}, [renderMessageOwner, needSender, newStyle.messageOwnerWrapper]);
|
|
@@ -58,7 +61,7 @@ export default function MessageBubble(props) {
|
|
|
58
61
|
|
|
59
62
|
const messageActionsRenderer = useCallback(() => {
|
|
60
63
|
const messageActions = isRenderMessageActions ? renderHandler(renderMessageActions)() : null;
|
|
61
|
-
return messageActions ? /*#__PURE__*/React.createElement(
|
|
64
|
+
return messageActions ? /*#__PURE__*/React.createElement(Box, {
|
|
62
65
|
className: newStyle.messageActionWrapper
|
|
63
66
|
}, messageActions) : null;
|
|
64
67
|
}, [isRenderMessageActions, renderMessageActions, newStyle.messageActionWrapper]);
|
|
@@ -66,7 +69,7 @@ export default function MessageBubble(props) {
|
|
|
66
69
|
|
|
67
70
|
const messageBoxRenderer = useCallback(() => {
|
|
68
71
|
const messageBox = renderHandler(renderMessageBox)();
|
|
69
|
-
return messageBox ? /*#__PURE__*/React.createElement(
|
|
72
|
+
return messageBox ? /*#__PURE__*/React.createElement(Box, {
|
|
70
73
|
className: newStyle.messageBoxWrapper
|
|
71
74
|
}, messageBox) : null;
|
|
72
75
|
}, [renderMessageBox, newStyle.messageBoxWrapper]);
|
|
@@ -75,7 +78,7 @@ export default function MessageBubble(props) {
|
|
|
75
78
|
const messageBoxWithActionsRenderer = useCallback(() => {
|
|
76
79
|
const messageBox = messageBoxRenderer();
|
|
77
80
|
const messageActions = messageActionsRenderer();
|
|
78
|
-
return messageBox || messageActions ? /*#__PURE__*/React.createElement(
|
|
81
|
+
return messageBox || messageActions ? /*#__PURE__*/React.createElement(Box, {
|
|
79
82
|
className: newStyle.messageContainer
|
|
80
83
|
}, messageBox, messageActions) : null;
|
|
81
84
|
}, [messageBoxRenderer, messageActionsRenderer, newStyle.messageContainer]);
|
|
@@ -83,13 +86,13 @@ export default function MessageBubble(props) {
|
|
|
83
86
|
|
|
84
87
|
const messageFooterRenderer = useCallback(() => {
|
|
85
88
|
const messageBoxFooter = renderHandler(renderMessageBoxFooter)();
|
|
86
|
-
return messageBoxFooter ? /*#__PURE__*/React.createElement(
|
|
89
|
+
return messageBoxFooter ? /*#__PURE__*/React.createElement(Box, {
|
|
87
90
|
className: newStyle.messageBoxFooterWrapper
|
|
88
91
|
}, messageBoxFooter) : null;
|
|
89
92
|
}, [renderMessageBoxFooter, newStyle.messageBoxFooterWrapper]);
|
|
90
93
|
/* Construct Layout */
|
|
91
94
|
|
|
92
|
-
const messageLayout = /*#__PURE__*/React.createElement(
|
|
95
|
+
const messageLayout = /*#__PURE__*/React.createElement(Container, {
|
|
93
96
|
className: bubbleClass,
|
|
94
97
|
onMouseEnter: onMouseEnter,
|
|
95
98
|
onMouseLeave: onMouseLeave
|
|
@@ -45,14 +45,13 @@ export default function ReplyBubble(props) {
|
|
|
45
45
|
const iconStyle = useMemo(() => ({
|
|
46
46
|
$icon: newStyle.attachmentIcon
|
|
47
47
|
}), [newStyle.attachmentIcon]);
|
|
48
|
-
const renderMessage = useCallback(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
React.createElement("span", {
|
|
48
|
+
const renderMessage = useCallback( // eslint-disable-next-line no-confusing-arrow
|
|
49
|
+
() => // eslint-disable-next-line react/no-danger, @zohodesk/zsecurity/no-unsecure-html
|
|
50
|
+
message ? /*#__PURE__*/React.createElement("span", {
|
|
52
51
|
dangerouslySetInnerHTML: {
|
|
53
52
|
__html: message
|
|
54
53
|
}
|
|
55
|
-
}), [message]);
|
|
54
|
+
}) : null, [message]);
|
|
56
55
|
const renderIcon = useCallback(() => {
|
|
57
56
|
if (fileURL) {
|
|
58
57
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -31,18 +31,19 @@ export default function ReplyBubbleContent(props) {
|
|
|
31
31
|
return /*#__PURE__*/React.createElement(Container, {
|
|
32
32
|
align: "vertical",
|
|
33
33
|
alignBox: "row",
|
|
34
|
-
className: newStyle.replyBubbleContent
|
|
34
|
+
className: newStyle.replyBubbleContent,
|
|
35
|
+
isCover: false
|
|
35
36
|
}, icon ? /*#__PURE__*/React.createElement(Box, {
|
|
36
37
|
className: newStyle.iconWrapper
|
|
37
38
|
}, /*#__PURE__*/React.createElement(Container, {
|
|
38
39
|
align: "both"
|
|
39
40
|
}, icon)) : null, /*#__PURE__*/React.createElement(Box, {
|
|
40
41
|
flexible: true
|
|
41
|
-
}, /*#__PURE__*/React.createElement(
|
|
42
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
42
43
|
className: newStyle.name
|
|
43
|
-
}, senderName), /*#__PURE__*/React.createElement(
|
|
44
|
+
}, senderName), messageContent ? /*#__PURE__*/React.createElement(Box, {
|
|
44
45
|
className: newStyle.messageWrapper
|
|
45
|
-
}, messageContent)));
|
|
46
|
+
}, messageContent) : null));
|
|
46
47
|
}
|
|
47
48
|
ReplyBubbleContent.propTypes = replyBubbleContentPropTypes;
|
|
48
49
|
ReplyBubbleContent.defaultProps = replyBubbleContentDefaultProps;
|
|
@@ -33,10 +33,7 @@
|
|
|
33
33
|
color: var(--imlib_chat_components_replyBubbleContent_color);
|
|
34
34
|
font-size: var(--zd_font_size15) ;
|
|
35
35
|
line-height: 1.5;
|
|
36
|
-
|
|
37
|
-
white-space: nowrap;
|
|
38
|
-
word-wrap: normal;
|
|
39
|
-
text-overflow: ellipsis;
|
|
36
|
+
composes: dotted from "../../css/common.module.css";
|
|
40
37
|
}
|
|
41
38
|
|
|
42
39
|
[dir=ltr] .iconWrapper {
|
|
@@ -39,14 +39,14 @@ export default function ReplyBubbleHeader(props) {
|
|
|
39
39
|
});
|
|
40
40
|
}, [iconStyle, renderCustomReplyIcon]);
|
|
41
41
|
return /*#__PURE__*/React.createElement(Container, {
|
|
42
|
-
|
|
43
|
-
}, /*#__PURE__*/React.createElement(Box, {
|
|
44
|
-
flexible: true
|
|
45
|
-
}, /*#__PURE__*/React.createElement(Container, {
|
|
42
|
+
align: "vertical",
|
|
46
43
|
alignBox: "row"
|
|
47
44
|
}, renderIcon(), /*#__PURE__*/React.createElement(Box, {
|
|
48
|
-
className: newStyle.replyText
|
|
49
|
-
|
|
45
|
+
className: newStyle.replyText,
|
|
46
|
+
flexible: true
|
|
47
|
+
}, replyText), /*#__PURE__*/React.createElement(Box, {
|
|
48
|
+
className: newStyle.time
|
|
49
|
+
}, time));
|
|
50
50
|
}
|
|
51
51
|
ReplyBubbleHeader.propTypes = replyBubbleHeaderPropTypes;
|
|
52
52
|
ReplyBubbleHeader.defaultProps = replyBubbleHeaderDefaultProps;
|
|
@@ -1,12 +1,31 @@
|
|
|
1
1
|
.replyIcon {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-shrink: 0;
|
|
4
|
+
width: var(--zd_size20) !important;
|
|
5
|
+
height: var(--zd_size20) !important;
|
|
6
|
+
}[dir=ltr] .replyIcon {
|
|
7
|
+
margin-right: var(--zd_size5) ;
|
|
8
|
+
}[dir=rtl] .replyIcon {
|
|
9
|
+
margin-left: var(--zd_size5) ;
|
|
4
10
|
}
|
|
5
11
|
|
|
6
12
|
.replyText {
|
|
7
|
-
max-width: var(--zd_size100) ;
|
|
8
|
-
white-space: nowrap;
|
|
9
|
-
overflow: hidden;
|
|
10
|
-
text-overflow: ellipsis;
|
|
11
13
|
font-size: var(--zd_font_size14) ;
|
|
12
14
|
}
|
|
15
|
+
|
|
16
|
+
[dir=ltr] .replyText {
|
|
17
|
+
margin-right: var(--zd_size5) ;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
[dir=rtl] .replyText {
|
|
21
|
+
margin-left: var(--zd_size5) ;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.replyText,
|
|
25
|
+
.time{
|
|
26
|
+
composes: dotted from "../../css/common.module.css";
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.time{
|
|
30
|
+
max-width: 40% ;
|
|
31
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** ** Libraries *** */
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { Fragment } from 'react';
|
|
3
3
|
/** ** Hooks *** */
|
|
4
4
|
|
|
5
5
|
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
@@ -20,7 +20,7 @@ export default function TextBubble(props) {
|
|
|
20
20
|
/* External CSS Customization */
|
|
21
21
|
|
|
22
22
|
const newStyle = useMergeStyle(style, customStyle);
|
|
23
|
-
return /*#__PURE__*/React.createElement(
|
|
23
|
+
return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("span", {
|
|
24
24
|
className: newStyle.textBubble // eslint-disable-next-line react/no-danger, @zohodesk/zsecurity/no-unsecure-html
|
|
25
25
|
,
|
|
26
26
|
dangerouslySetInnerHTML: {
|
|
@@ -11,8 +11,10 @@
|
|
|
11
11
|
|
|
12
12
|
.textBubble a {
|
|
13
13
|
color: var(--imlib_chat_components_textBubble_url_color);
|
|
14
|
+
word-break: break-word;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
.textBubble a:hover {
|
|
17
|
-
text-decoration: underline;
|
|
18
|
+
text-decoration: underline !important;
|
|
19
|
+
/* !important for Desk css overwrite */
|
|
18
20
|
}
|
package/es/Theme/ThemeWrapper.js
CHANGED
|
@@ -68,11 +68,11 @@ export default function ThemeWrapper(props) {
|
|
|
68
68
|
const renderStyle = useCallback(() => /*#__PURE__*/React.createElement("style", {
|
|
69
69
|
id: "zoho-im-variables"
|
|
70
70
|
}, `${selector}{${customizedVariables}}`), [selector, customizedVariables]);
|
|
71
|
-
const renderAssets = useCallback(() => /*#__PURE__*/React.createElement(React.Fragment, null,
|
|
71
|
+
const renderAssets = useCallback(() => /*#__PURE__*/React.createElement(React.Fragment, null, needThemeAssets ? /*#__PURE__*/React.createElement(ThemeAssets, null) : null, needTooltip ? /*#__PURE__*/React.createElement(TooltipWrapper, {
|
|
72
72
|
containerRef: containerRef.current,
|
|
73
73
|
customStyle: tooltipCustomStyle,
|
|
74
74
|
getContainerRef: getContainerRef
|
|
75
|
-
}) : null)
|
|
75
|
+
}) : null), [getContainerRef, needTooltip, needThemeAssets, tooltipCustomStyle]);
|
|
76
76
|
return /*#__PURE__*/React.createElement("div", _extends({
|
|
77
77
|
id: styleTagId
|
|
78
78
|
}, wrapperDivProps, {
|