@zohoim/chat-components 0.0.6 → 0.0.7
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/ActionIcon/ActionIcon.js +13 -11
- package/es/ArticleBubble/ArticleBubble.js +60 -0
- package/es/ArticleBubble/css/ArticleBubble.module.css +1 -0
- package/es/ArticleBubble/css/cssJSLogic.js +34 -0
- package/es/ArticleBubble/index.js +1 -0
- package/es/ArticleBubble/props/defaultProps.js +6 -0
- package/es/ArticleBubble/props/propTypes.js +10 -0
- package/es/AttachmentBubble/AttachmentBubble.js +55 -0
- package/es/AttachmentBubble/css/AttachmentBubble.module.css +17 -0
- package/es/AttachmentBubble/css/cssJSLogic.js +18 -0
- package/es/AttachmentBubble/index.js +1 -0
- package/es/AttachmentBubble/props/defaultProps.js +7 -0
- package/es/AttachmentBubble/props/propTypes.js +10 -0
- package/es/AttachmentBubbleInfo/AttachmentBubbleInfo.js +45 -0
- package/es/AttachmentBubbleInfo/css/AttachmentBubbleInfo.module.css +18 -0
- package/es/AttachmentBubbleInfo/css/cssJSLogic.js +18 -0
- package/es/AttachmentBubbleInfo/index.js +1 -0
- package/es/AttachmentBubbleInfo/props/defaultProps.js +6 -0
- package/es/AttachmentBubbleInfo/props/propTypes.js +8 -0
- package/es/Audio/Audio.js +60 -0
- package/es/Audio/css/Audio.module.css +3 -0
- package/es/Audio/css/cssJSLogic.js +14 -0
- package/es/Audio/index.js +1 -0
- package/es/Audio/props/defaultProps.js +7 -0
- package/es/Audio/props/propTypes.js +9 -0
- package/es/AudioBubble/AudioBubble.js +58 -0
- package/es/AudioBubble/css/AudioBubble.module.css +3 -0
- package/es/AudioBubble/css/cssJSLogic.js +20 -0
- package/es/AudioBubble/index.js +1 -0
- package/es/AudioBubble/props/defaultProps.js +8 -0
- package/es/AudioBubble/props/propTypes.js +12 -0
- package/es/IMArticleBubble/IMArticleBubble.js +55 -0
- package/es/IMArticleBubble/css/IMArticleBubble.module.css +0 -0
- package/es/IMArticleBubble/css/cssJSLogic.js +10 -0
- package/es/IMArticleBubble/index.js +1 -0
- package/es/IMArticleBubble/props/defaultProps.js +8 -0
- package/es/IMArticleBubble/props/propTypes.js +14 -0
- package/es/IMAttachmentBubble/IMAttachmentBubble.js +63 -0
- package/es/IMAttachmentBubble/css/IMAttachmentBubble.module.css +1 -0
- package/es/IMAttachmentBubble/css/cssJSLogic.js +10 -0
- package/es/IMAttachmentBubble/index.js +1 -0
- package/es/IMAttachmentBubble/props/defaultProps.js +10 -0
- package/es/IMAttachmentBubble/props/propTypes.js +16 -0
- package/es/IMAttachmentIcon/IMAttachmentIcon.js +86 -0
- package/es/IMAttachmentIcon/css/IMAttachmentIcon.module.css +4 -0
- package/es/IMAttachmentIcon/css/cssJSLogic.js +16 -0
- package/es/IMAttachmentIcon/index.js +1 -0
- package/es/IMAttachmentIcon/props/defaultProps.js +6 -0
- package/es/IMAttachmentIcon/props/propTypes.js +26 -0
- package/es/IMAudioBubble/IMAudioBubble.js +63 -0
- package/es/IMAudioBubble/css/IMAudioBubble.module.css +8 -0
- package/es/IMAudioBubble/css/cssJSLogic.js +20 -0
- package/es/IMAudioBubble/index.js +1 -0
- package/es/IMAudioBubble/props/defaultProps.js +11 -0
- package/es/IMAudioBubble/props/propTypes.js +17 -0
- package/es/IMAutoMessageInfo/IMAutoMessageInfo.js +43 -0
- package/es/IMAutoMessageInfo/css/IMAutoMessageInfo.module.css +13 -0
- package/es/IMAutoMessageInfo/css/cssJSLogic.js +10 -0
- package/es/IMAutoMessageInfo/index.js +1 -0
- package/es/IMAutoMessageInfo/props/defaultProps.js +6 -0
- package/es/IMAutoMessageInfo/props/propTypes.js +26 -0
- package/es/IMDateTime/IMDateTime.js +41 -0
- package/es/IMDateTime/css/IMDateTime.module.css +5 -0
- package/es/IMDateTime/css/cssJSLogic.js +10 -0
- package/es/IMDateTime/index.js +1 -0
- package/es/IMDateTime/props/defaultProps.js +6 -0
- package/es/IMDateTime/props/propTypes.js +6 -0
- package/es/IMImageBubble/IMImageBubble.js +49 -0
- package/es/IMImageBubble/css/IMImageBubble.module.css +0 -0
- package/es/IMImageBubble/css/cssJSLogic.js +10 -0
- package/es/IMImageBubble/index.js +1 -0
- package/es/IMImageBubble/props/defaultProps.js +7 -0
- package/es/IMImageBubble/props/propTypes.js +13 -0
- package/es/IMInfoBubble/IMInfoBubble.js +37 -0
- package/es/IMInfoBubble/css/IMInfoBubble.module.css +0 -0
- package/es/IMInfoBubble/css/cssJSLogic.js +10 -0
- package/es/IMInfoBubble/index.js +1 -0
- package/es/IMInfoBubble/props/defaultProps.js +6 -0
- package/es/IMInfoBubble/props/propTypes.js +6 -0
- package/es/IMLocationBubble/IMLocationBubble.js +49 -0
- package/es/IMLocationBubble/css/IMLocationBubble.module.css +0 -0
- package/es/IMLocationBubble/css/cssJSLogic.js +10 -0
- package/es/IMLocationBubble/index.js +1 -0
- package/es/IMLocationBubble/props/defaultProps.js +8 -0
- package/es/IMLocationBubble/props/propTypes.js +11 -0
- package/es/IMMessage/IMMessage.js +156 -109
- package/es/IMMessage/props/defaultProps.js +22 -35
- package/es/IMMessage/props/propTypes.js +95 -48
- package/es/IMMessageActions/IMMessageActions.js +9 -5
- package/es/IMMessageActions/css/IMMessageActions.module.css +2 -2
- package/es/IMMessageAvatar/props/defaultProps.js +4 -2
- package/es/IMMessageContent/IMMessageContent.js +84 -0
- package/es/IMMessageContent/css/IMMessageContent.module.css +0 -0
- package/es/IMMessageContent/css/cssJSLogic.js +10 -0
- package/es/IMMessageContent/index.js +1 -0
- package/es/IMMessageContent/props/defaultProps.js +8 -0
- package/es/IMMessageContent/props/propTypes.js +35 -0
- package/es/IMMessageMeta/IMMessageMeta.js +60 -0
- package/es/IMMessageMeta/css/IMMessageMeta.module.css +32 -0
- package/es/IMMessageMeta/css/cssJSLogic.js +20 -0
- package/es/IMMessageMeta/index.js +1 -0
- package/es/IMMessageMeta/props/defaultProps.js +10 -0
- package/es/IMMessageMeta/props/propTypes.js +30 -0
- package/es/IMMessageStatus/css/IMMessageStatus.module.css +6 -3
- package/es/IMReplyBubble/IMReplyBubble.js +37 -0
- package/es/IMReplyBubble/css/IMReplyBubble.module.css +0 -0
- package/es/IMReplyBubble/css/cssJSLogic.js +10 -0
- package/es/IMReplyBubble/index.js +1 -0
- package/es/IMReplyBubble/props/defaultProps.js +6 -0
- package/es/IMReplyBubble/props/propTypes.js +6 -0
- package/es/IMTextBubble/IMTextBubble.js +53 -0
- package/es/IMTextBubble/css/IMTextBubble.module.css +1 -0
- package/es/IMTextBubble/css/cssJSLogic.js +10 -0
- package/es/IMTextBubble/index.js +1 -0
- package/es/IMTextBubble/props/defaultProps.js +14 -0
- package/es/IMTextBubble/props/propTypes.js +15 -0
- package/es/IMTicketLink/IMTicketLink.js +48 -0
- package/es/IMTicketLink/css/IMTicketLink.module.css +24 -0
- package/es/IMTicketLink/css/cssJSLogic.js +14 -0
- package/es/IMTicketLink/index.js +1 -0
- package/es/IMTicketLink/props/defaultProps.js +6 -0
- package/es/IMTicketLink/props/propTypes.js +10 -0
- package/es/IMVideoBubble/IMVideoBubble.js +62 -0
- package/es/IMVideoBubble/css/IMVideoBubble.module.css +1 -0
- package/es/IMVideoBubble/css/cssJSLogic.js +10 -0
- package/es/IMVideoBubble/index.js +1 -0
- package/es/IMVideoBubble/props/defaultProps.js +11 -0
- package/es/IMVideoBubble/props/propTypes.js +17 -0
- package/es/ImageBubble/ImageBubble.js +52 -0
- package/es/ImageBubble/css/ImageBubble.module.css +53 -0
- package/es/ImageBubble/css/cssJSLogic.js +22 -0
- package/es/ImageBubble/index.js +1 -0
- package/es/ImageBubble/props/defaultProps.js +6 -0
- package/es/ImageBubble/props/propTypes.js +8 -0
- package/es/InfoBubble/InfoBubble.js +37 -0
- package/es/InfoBubble/css/InfoBubble.module.css +0 -0
- package/es/InfoBubble/css/cssJSLogic.js +10 -0
- package/es/InfoBubble/index.js +1 -0
- package/es/InfoBubble/props/defaultProps.js +6 -0
- package/es/InfoBubble/props/propTypes.js +6 -0
- package/es/LazyLoadImage/LazyLoadImage.js +48 -0
- package/es/LazyLoadImage/css/LazyLoadImage.module.css +4 -0
- package/es/LazyLoadImage/css/cssJSLogic.js +10 -0
- package/es/LazyLoadImage/index.js +1 -0
- package/es/LazyLoadImage/props/defaultProps.js +6 -0
- package/es/LazyLoadImage/props/propTypes.js +8 -0
- package/es/LocationBubble/LocationBubble.js +63 -0
- package/es/LocationBubble/css/LocationBubble.module.css +3 -0
- package/es/LocationBubble/css/cssJSLogic.js +30 -0
- package/es/LocationBubble/images/location.png +0 -0
- package/es/LocationBubble/index.js +1 -0
- package/es/LocationBubble/props/defaultProps.js +6 -0
- package/es/LocationBubble/props/propTypes.js +7 -0
- package/es/MediaControls/MediaControls.js +60 -0
- package/es/MediaControls/css/MediaControls.module.css +1 -0
- package/es/MediaControls/css/cssJSLogic.js +22 -0
- package/es/MediaControls/index.js +1 -0
- package/es/MediaControls/props/defaultProps.js +6 -0
- package/es/MediaControls/props/propTypes.js +11 -0
- package/es/Message/Message.js +136 -0
- package/es/Message/css/Message.module.css +0 -0
- package/es/Message/css/cssJSLogic.js +10 -0
- package/es/Message/index.js +1 -0
- package/es/Message/props/defaultProps.js +43 -0
- package/es/Message/props/propTypes.js +98 -0
- package/es/MessageAction/MessageAction.js +4 -2
- package/es/MessageActions/MessageActions.js +1 -1
- package/es/MessageActionsMore/MessageActionsMore.js +5 -3
- package/es/MessageAvatar/MessageAvatar.js +9 -9
- package/es/MessageAvatar/props/defaultProps.js +4 -2
- package/es/MessageBox/MessageBox.js +5 -2
- package/es/MessageBox/css/MessageBox.module.css +14 -0
- package/es/MessageBox/css/cssJSLogic.js +12 -1
- package/es/MessageBox/props/defaultProps.js +3 -1
- package/es/MessageBox/props/propTypes.js +3 -1
- package/es/MessageBoxFooter/MessageBoxFooter.js +1 -1
- package/es/MessageBubble/MessageBubble.js +10 -10
- package/es/MessageWrapper/MessageWrapper.js +37 -0
- package/es/MessageWrapper/css/MessageWrapper.module.css +0 -0
- package/es/MessageWrapper/css/cssJSLogic.js +10 -0
- package/es/MessageWrapper/index.js +1 -0
- package/es/MessageWrapper/props/defaultProps.js +6 -0
- package/es/MessageWrapper/props/propTypes.js +6 -0
- package/es/MoreActionItem/MoreActionItem.js +9 -9
- package/es/MoreActionItem/props/defaultProps.js +1 -1
- package/es/MoreActionItem/props/propTypes.js +1 -1
- package/es/ReplyBubble/ReplyBubble.js +41 -0
- package/es/ReplyBubble/css/ReplyBubble.module.css +0 -0
- package/es/ReplyBubble/css/cssJSLogic.js +10 -0
- package/es/ReplyBubble/index.js +1 -0
- package/es/ReplyBubble/props/defaultProps.js +6 -0
- package/es/ReplyBubble/props/propTypes.js +6 -0
- package/es/ReplyBubbleHeader/ReplyBubbleHeader.js +53 -0
- package/es/ReplyBubbleHeader/css/ReplyBubbleHeader.module.css +0 -0
- package/es/ReplyBubbleHeader/css/cssJSLogic.js +10 -0
- package/es/ReplyBubbleHeader/index.js +1 -0
- package/es/ReplyBubbleHeader/props/defaultProps.js +9 -0
- package/es/ReplyBubbleHeader/props/propTypes.js +9 -0
- package/es/TextBubble/TextBubble.js +56 -0
- package/es/TextBubble/css/TextBubble.module.css +1 -0
- package/es/TextBubble/css/cssJSLogic.js +18 -0
- package/es/TextBubble/index.js +1 -0
- package/es/TextBubble/props/defaultProps.js +9 -0
- package/es/TextBubble/props/propTypes.js +10 -0
- package/es/Theme/DeskAssets.js +53 -0
- package/es/Theme/ThemeWrapper.js +82 -0
- package/es/Theme/ToolttipWrapper.js +81 -0
- package/es/Theme/constants/index.js +44 -0
- package/es/Theme/crm/dark/blueFanTheme.js +28 -0
- package/es/Theme/crm/dark/blueTheme.js +28 -0
- package/es/Theme/crm/dark/commonColorVariable.js +11 -0
- package/es/Theme/crm/dark/darkBlueTheme.js +28 -0
- package/es/Theme/crm/dark/darkGreyTheme.js +28 -0
- package/es/Theme/crm/dark/greenTheme.js +28 -0
- package/es/Theme/crm/dark/orangeTheme.js +28 -0
- package/es/Theme/crm/dark/pinkTheme.js +28 -0
- package/es/Theme/crm/dark/tealTheme.js +28 -0
- package/es/Theme/crm/dark/whiteTheme.js +28 -0
- package/es/Theme/crm/light/blueFanTheme.js +28 -0
- package/es/Theme/crm/light/blueTheme.js +31 -0
- package/es/Theme/crm/light/commonColorVariable.js +9 -0
- package/es/Theme/crm/light/darkBlueTheme.js +28 -0
- package/es/Theme/crm/light/darkGreyTheme.js +28 -0
- package/es/Theme/crm/light/greenTheme.js +28 -0
- package/es/Theme/crm/light/orangeTheme.js +28 -0
- package/es/Theme/crm/light/pinkTheme.js +28 -0
- package/es/Theme/crm/light/tealTheme.js +28 -0
- package/es/Theme/crm/light/whiteTheme.js +28 -0
- package/es/Theme/crm/pureDark/blueFanTheme.js +28 -0
- package/es/Theme/crm/pureDark/blueTheme.js +28 -0
- package/es/Theme/crm/pureDark/commonColorVariable.js +9 -0
- package/es/Theme/crm/pureDark/darkBlueTheme.js +28 -0
- package/es/Theme/crm/pureDark/darkGreyTheme.js +28 -0
- package/es/Theme/crm/pureDark/greenTheme.js +28 -0
- package/es/Theme/crm/pureDark/orangeTheme.js +28 -0
- package/es/Theme/crm/pureDark/pinkTheme.js +28 -0
- package/es/Theme/crm/pureDark/tealTheme.js +28 -0
- package/es/Theme/crm/pureDark/whiteTheme.js +28 -0
- package/es/Theme/css/TooltipWrapper.module.css +10 -0
- package/es/Theme/css/cssJSLogic.js +14 -0
- package/es/Theme/desk/commonDeskColorVariable.js +12 -0
- package/es/Theme/desk/dark/blueTheme.js +30 -0
- package/es/Theme/desk/dark/commonColorVariable.js +5 -0
- package/es/Theme/desk/dark/greenTheme.js +30 -0
- package/es/Theme/desk/dark/orangeTheme.js +30 -0
- package/es/Theme/desk/dark/redTheme.js +30 -0
- package/es/Theme/desk/dark/yellowTheme.js +30 -0
- package/es/Theme/desk/light/blueTheme.js +33 -0
- package/es/Theme/desk/light/commonColorVariable.js +5 -0
- package/es/Theme/desk/light/greenTheme.js +30 -0
- package/es/Theme/desk/light/orangeTheme.js +29 -0
- package/es/Theme/desk/light/redTheme.js +29 -0
- package/es/Theme/desk/light/yellowTheme.js +30 -0
- package/es/Theme/desk/pureDark/blueTheme.js +30 -0
- package/es/Theme/desk/pureDark/commonColorVariable.js +6 -0
- package/es/Theme/desk/pureDark/greenTheme.js +30 -0
- package/es/Theme/desk/pureDark/orangeTheme.js +30 -0
- package/es/Theme/desk/pureDark/redTheme.js +30 -0
- package/es/Theme/desk/pureDark/yellowTheme.js +30 -0
- package/es/Theme/index.js +1 -0
- package/es/Theme/props/defaultProps.js +13 -0
- package/es/Theme/props/propTypes.js +15 -0
- package/es/Theme/utils/getThemeConfigurations.js +209 -0
- package/es/Video/Video.js +69 -0
- package/es/Video/css/Video.module.css +9 -0
- package/es/Video/css/cssJSLogic.js +14 -0
- package/es/Video/index.js +1 -0
- package/es/Video/props/defaultProps.js +7 -0
- package/es/Video/props/propTypes.js +9 -0
- package/es/VideoBubble/VideoBubble.js +57 -0
- package/es/VideoBubble/css/VideoBubble.module.css +4 -0
- package/es/VideoBubble/css/cssJSLogic.js +10 -0
- package/es/VideoBubble/index.js +1 -0
- package/es/VideoBubble/props/defaultProps.js +8 -0
- package/es/VideoBubble/props/propTypes.js +12 -0
- package/es/icons/create-icon-components.js +1 -1
- package/es/icons/factory/attachments/audio.svg +19 -0
- package/es/icons/factory/attachments/code.svg +21 -0
- package/es/icons/factory/attachments/image.svg +20 -0
- package/es/icons/factory/attachments/pdf.svg +19 -0
- package/es/icons/factory/attachments/txt.svg +22 -0
- package/es/icons/factory/attachments/unknown.svg +21 -0
- package/es/icons/factory/attachments/video.svg +19 -0
- package/es/icons/factory/attachments/zip.svg +27 -0
- package/es/icons/iconSrc/actions/ConvertTicket.js +1 -1
- package/es/icons/iconSrc/attachments/Audio.js +37 -0
- package/es/icons/iconSrc/attachments/Code.js +43 -0
- package/es/icons/iconSrc/attachments/Image.js +42 -0
- package/es/icons/iconSrc/attachments/Pdf.js +37 -0
- package/es/icons/iconSrc/attachments/Txt.js +46 -0
- package/es/icons/iconSrc/attachments/Unknown.js +41 -0
- package/es/icons/iconSrc/attachments/Video.js +37 -0
- package/es/icons/iconSrc/attachments/Zip.js +85 -0
- package/es/icons/iconSrc/attachments/index.js +8 -0
- package/es/icons/iconSrc/integrations/TtASAP.js +1 -1
- package/es/icons/iconSrc/integrations/TtTelegram.js +1 -1
- package/es/icons/iconSrc/integrations/TtTwillio.js +1 -1
- package/es/icons/iconSrc/integrations/TtTwitter.js +1 -1
- package/es/icons/iconSrc/integrations/TtWechat.js +1 -1
- package/es/index.js +33 -0
- package/package.json +8 -4
- /package/es/MessageActionsMore/css/{cssJsLogic.js → cssJSLogic.js} +0 -0
|
@@ -6,31 +6,33 @@ import React from 'react';
|
|
|
6
6
|
|
|
7
7
|
/** ** Hooks *** */
|
|
8
8
|
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
import useActionIcon from '@zohoim/chat-components-hooks/es/ActionIcon/useActionIcon';
|
|
9
10
|
|
|
10
11
|
/** ** Constants *** */
|
|
11
12
|
import actionIconDefaultProps from './props/defaultProps';
|
|
12
13
|
import actionIconPropTypes from './props/propTypes';
|
|
13
14
|
|
|
14
15
|
/** ** Methods *** */
|
|
15
|
-
import renderHandler from '@zohoim/chat-components-utils/es/renderHandler';
|
|
16
16
|
import cssJSLogic from './css/cssJSLogic';
|
|
17
17
|
|
|
18
18
|
/** ** Styles *** */
|
|
19
19
|
import style from './css/ActionIcon.module.css';
|
|
20
20
|
export default function ActionIcon(props) {
|
|
21
21
|
const {
|
|
22
|
-
renderIcon,
|
|
22
|
+
renderIcon: propRenderIcon,
|
|
23
23
|
customStyle,
|
|
24
|
-
onClick,
|
|
24
|
+
onClick: propOnClick,
|
|
25
25
|
id,
|
|
26
26
|
title
|
|
27
27
|
} = props;
|
|
28
|
-
|
|
29
|
-
onClick
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
const {
|
|
29
|
+
onClick,
|
|
30
|
+
renderIcon
|
|
31
|
+
} = useActionIcon({
|
|
32
|
+
renderIcon: propRenderIcon,
|
|
33
|
+
onClick: propOnClick,
|
|
34
|
+
id
|
|
35
|
+
});
|
|
34
36
|
|
|
35
37
|
/* External customization */
|
|
36
38
|
const newStyle = useMergeStyle(style, customStyle);
|
|
@@ -41,11 +43,11 @@ export default function ActionIcon(props) {
|
|
|
41
43
|
} = cssJSLogic(props, newStyle);
|
|
42
44
|
|
|
43
45
|
/* Render Icon */
|
|
44
|
-
const icon =
|
|
46
|
+
const icon = renderIcon({
|
|
45
47
|
id
|
|
46
48
|
});
|
|
47
49
|
return icon ? /*#__PURE__*/React.createElement("div", {
|
|
48
|
-
onClick:
|
|
50
|
+
onClick: onClick,
|
|
49
51
|
className: actionIconClass,
|
|
50
52
|
"data-title": title
|
|
51
53
|
}, icon) : null;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-no-bind */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
|
|
4
|
+
/** ** Libraries *** */
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
/** ** Hooks *** */
|
|
8
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
|
|
10
|
+
/** ** Constants *** */
|
|
11
|
+
import articleBubbleDefaultProps from './props/defaultProps';
|
|
12
|
+
import articleBubblePropTypes from './props/propTypes';
|
|
13
|
+
|
|
14
|
+
/** ** Methods *** */
|
|
15
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
16
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
17
|
+
|
|
18
|
+
/** ** Styles *** */
|
|
19
|
+
import style from './css/ArticleBubble.module.css';
|
|
20
|
+
import ArticleIcon from '../icons/iconSrc/actions/ConvertTicket';
|
|
21
|
+
export default function ArticleBubble(props) {
|
|
22
|
+
const {
|
|
23
|
+
customStyle,
|
|
24
|
+
bubbleInfo,
|
|
25
|
+
title,
|
|
26
|
+
summary,
|
|
27
|
+
articleURL
|
|
28
|
+
} = props;
|
|
29
|
+
|
|
30
|
+
/* External customization */
|
|
31
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
32
|
+
/* CSS classnames added based on logic */
|
|
33
|
+
const {
|
|
34
|
+
articleBubbleClass,
|
|
35
|
+
headerClass,
|
|
36
|
+
iconClass,
|
|
37
|
+
headerTextClass,
|
|
38
|
+
articleWrapperClass,
|
|
39
|
+
titleClass,
|
|
40
|
+
summaryClass
|
|
41
|
+
} = cssJSLogic(props, newStyle);
|
|
42
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
43
|
+
className: articleBubbleClass
|
|
44
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
45
|
+
className: headerClass
|
|
46
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
47
|
+
className: iconClass
|
|
48
|
+
}, /*#__PURE__*/React.createElement(ArticleIcon, null)), /*#__PURE__*/React.createElement("div", {
|
|
49
|
+
className: headerTextClass
|
|
50
|
+
}, bubbleInfo)), /*#__PURE__*/React.createElement("div", {
|
|
51
|
+
className: articleWrapperClass
|
|
52
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
53
|
+
className: titleClass
|
|
54
|
+
}, title), /*#__PURE__*/React.createElement("div", {
|
|
55
|
+
className: summaryClass
|
|
56
|
+
}, summary)));
|
|
57
|
+
}
|
|
58
|
+
ArticleBubble.propTypes = articleBubblePropTypes;
|
|
59
|
+
ArticleBubble.defaultProps = articleBubbleDefaultProps;
|
|
60
|
+
ArticleBubble.displayName = 'ArticleBubble';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
2
|
+
import { compileClassNames } from '@zohodesk/utils';
|
|
3
|
+
export default function cssJSLogic(props, style) {
|
|
4
|
+
const articleBubbleClass = compileClassNames({
|
|
5
|
+
[style.articleBubble]: true
|
|
6
|
+
});
|
|
7
|
+
const headerClass = compileClassNames({
|
|
8
|
+
[style.header]: true
|
|
9
|
+
});
|
|
10
|
+
const iconClass = compileClassNames({
|
|
11
|
+
[style.icon]: true
|
|
12
|
+
});
|
|
13
|
+
const headerTextClass = compileClassNames({
|
|
14
|
+
[style.headerText]: true
|
|
15
|
+
});
|
|
16
|
+
const articleWrapperClass = compileClassNames({
|
|
17
|
+
[style.articleWrapper]: true
|
|
18
|
+
});
|
|
19
|
+
const titleClass = compileClassNames({
|
|
20
|
+
[style.title]: true
|
|
21
|
+
});
|
|
22
|
+
const summaryClass = compileClassNames({
|
|
23
|
+
[style.summary]: true
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
articleBubbleClass,
|
|
27
|
+
headerClass,
|
|
28
|
+
iconClass,
|
|
29
|
+
headerTextClass,
|
|
30
|
+
articleWrapperClass,
|
|
31
|
+
titleClass,
|
|
32
|
+
summaryClass
|
|
33
|
+
};
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ArticleBubble } from './ArticleBubble';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
const articleBubblePropTypes = {
|
|
4
|
+
customStyle: PropTypes.object,
|
|
5
|
+
bubbleInfo: PropTypes.string,
|
|
6
|
+
title: PropTypes.string,
|
|
7
|
+
summary: PropTypes.string,
|
|
8
|
+
articleURL: PropTypes.string
|
|
9
|
+
};
|
|
10
|
+
export default articleBubblePropTypes;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-no-bind */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
|
|
4
|
+
/** ** Libraries *** */
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
/** ** Hooks *** */
|
|
8
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
|
|
10
|
+
/** ** Constants *** */
|
|
11
|
+
import attachmentBubbleDefaultProps from './props/defaultProps';
|
|
12
|
+
import attachmentBubblePropTypes from './props/propTypes';
|
|
13
|
+
|
|
14
|
+
/** ** Methods *** */
|
|
15
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
16
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
17
|
+
|
|
18
|
+
/** ** Styles *** */
|
|
19
|
+
import style from './css/AttachmentBubble.module.css';
|
|
20
|
+
import AttachmentBubbleInfo from '../AttachmentBubbleInfo/AttachmentBubbleInfo';
|
|
21
|
+
import { Container, Box } from '@zohodesk/components/es/Layout';
|
|
22
|
+
export default function AttachmentBubble(props) {
|
|
23
|
+
const {
|
|
24
|
+
customStyle,
|
|
25
|
+
renderFileTypeIcon,
|
|
26
|
+
fileName,
|
|
27
|
+
fileSize,
|
|
28
|
+
bubbleInfoCustomStyle
|
|
29
|
+
} = props;
|
|
30
|
+
|
|
31
|
+
/* External customization */
|
|
32
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
33
|
+
/* CSS classnames added based on logic */
|
|
34
|
+
const {
|
|
35
|
+
attachmentBubbleClass,
|
|
36
|
+
attachmentBubbleIconClass,
|
|
37
|
+
attachmentBubbleContentClass
|
|
38
|
+
} = cssJSLogic(props, newStyle);
|
|
39
|
+
const fileIcon = renderHandler(renderFileTypeIcon)();
|
|
40
|
+
return /*#__PURE__*/React.createElement(Container, {
|
|
41
|
+
alignBox: "row",
|
|
42
|
+
className: attachmentBubbleClass
|
|
43
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
44
|
+
className: attachmentBubbleIconClass
|
|
45
|
+
}, fileIcon), /*#__PURE__*/React.createElement("div", {
|
|
46
|
+
className: attachmentBubbleContentClass
|
|
47
|
+
}, /*#__PURE__*/React.createElement(AttachmentBubbleInfo, {
|
|
48
|
+
customStyle: bubbleInfoCustomStyle,
|
|
49
|
+
fileName: fileName,
|
|
50
|
+
fileSize: fileSize
|
|
51
|
+
})));
|
|
52
|
+
}
|
|
53
|
+
AttachmentBubble.propTypes = attachmentBubblePropTypes;
|
|
54
|
+
AttachmentBubble.defaultProps = attachmentBubbleDefaultProps;
|
|
55
|
+
AttachmentBubble.displayName = 'AttachmentBubble';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
.attachmentBubble {
|
|
2
|
+
background-color: #fff;
|
|
3
|
+
border-radius: 3px;
|
|
4
|
+
border: 1px solid #ebf0f5;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
[dir=ltr] .attachmentBubbleIcon{
|
|
8
|
+
border-right: 1px solid #ebf0f5;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[dir=rtl] .attachmentBubbleIcon{
|
|
12
|
+
border-left: 1px solid #ebf0f5;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.attachmentBubbleIcon, .attachmentBubbleContent{
|
|
16
|
+
padding: 10px;
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
2
|
+
import { compileClassNames } from "@zohodesk/utils";
|
|
3
|
+
export default function cssJSLogic(props, style) {
|
|
4
|
+
const attachmentBubbleClass = compileClassNames({
|
|
5
|
+
[style.attachmentBubble]: true
|
|
6
|
+
});
|
|
7
|
+
const attachmentBubbleIconClass = compileClassNames({
|
|
8
|
+
[style.attachmentBubbleIcon]: true
|
|
9
|
+
});
|
|
10
|
+
const attachmentBubbleContentClass = compileClassNames({
|
|
11
|
+
[style.attachmentBubbleContent]: true
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
attachmentBubbleClass,
|
|
15
|
+
attachmentBubbleIconClass,
|
|
16
|
+
attachmentBubbleContentClass
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as AttachmentBubble } from './AttachmentBubble';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
const attachmentBubblePropTypes = {
|
|
4
|
+
customStyle: PropTypes.object,
|
|
5
|
+
bubbleInfoCustomStyle: PropTypes.object,
|
|
6
|
+
renderFileTypeIcon: PropTypes.func,
|
|
7
|
+
fileName: PropTypes.string,
|
|
8
|
+
fileSize: PropTypes.string
|
|
9
|
+
};
|
|
10
|
+
export default attachmentBubblePropTypes;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-no-bind */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
|
|
4
|
+
/** ** Libraries *** */
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
/** ** Hooks *** */
|
|
8
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
|
|
10
|
+
/** ** Constants *** */
|
|
11
|
+
import attachmentBubbleInfoDefaultProps from './props/defaultProps';
|
|
12
|
+
import attachmentBubbleInfoPropTypes from './props/propTypes';
|
|
13
|
+
|
|
14
|
+
/** ** Methods *** */
|
|
15
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
16
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
17
|
+
|
|
18
|
+
/** ** Styles *** */
|
|
19
|
+
import style from './css/AttachmentBubbleInfo.module.css';
|
|
20
|
+
export default function AttachmentBubbleInfo(props) {
|
|
21
|
+
const {
|
|
22
|
+
customStyle,
|
|
23
|
+
fileName,
|
|
24
|
+
fileSize
|
|
25
|
+
} = props;
|
|
26
|
+
|
|
27
|
+
/* External customization */
|
|
28
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
29
|
+
/* CSS classnames added based on logic */
|
|
30
|
+
const {
|
|
31
|
+
attachmentBubbleInfoClass,
|
|
32
|
+
fileNameClass,
|
|
33
|
+
fileSizeClass
|
|
34
|
+
} = cssJSLogic(props, newStyle);
|
|
35
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
36
|
+
className: attachmentBubbleInfoClass
|
|
37
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
38
|
+
className: fileNameClass
|
|
39
|
+
}, fileName), /*#__PURE__*/React.createElement("div", {
|
|
40
|
+
className: fileSizeClass
|
|
41
|
+
}, fileSize));
|
|
42
|
+
}
|
|
43
|
+
AttachmentBubbleInfo.propTypes = attachmentBubbleInfoPropTypes;
|
|
44
|
+
AttachmentBubbleInfo.defaultProps = attachmentBubbleInfoDefaultProps;
|
|
45
|
+
AttachmentBubbleInfo.displayName = 'AttachmentBubbleInfo';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.varClass{
|
|
2
|
+
--attachmentBubbleInfo-fileName_font_size: var(--imlib_size_15);
|
|
3
|
+
--attachmentBubbleInfo-fileName_font_family: var(--zd_semibold);
|
|
4
|
+
--attachmentBubbleInfo-fileSize_font_size: var(--imlib_size_13);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.fileName {
|
|
8
|
+
composes: varClass;
|
|
9
|
+
font-size: var(--attachmentBubbleInfo-fileName_font_size);
|
|
10
|
+
font-family: var(--attachmentBubbleInfo-fileName_font_family);
|
|
11
|
+
color: #000;
|
|
12
|
+
margin-bottom: var(--imlib_size_5);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.fileSize {
|
|
16
|
+
font-size: var(--attachmentBubbleInfo-fileSize_font_size);
|
|
17
|
+
color: #5a616f;
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
2
|
+
import { compileClassNames } from "@zohodesk/utils";
|
|
3
|
+
export default function cssJSLogic(props, style) {
|
|
4
|
+
const attachmentBubbleInfoClass = compileClassNames({
|
|
5
|
+
[style.attachmentBubbleInfo]: true
|
|
6
|
+
});
|
|
7
|
+
const fileNameClass = compileClassNames({
|
|
8
|
+
[style.fileName]: true
|
|
9
|
+
});
|
|
10
|
+
const fileSizeClass = compileClassNames({
|
|
11
|
+
[style.fileSize]: true
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
attachmentBubbleInfoClass,
|
|
15
|
+
fileNameClass,
|
|
16
|
+
fileSizeClass
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as AttachmentBubbleInfo } from './AttachmentBubbleInfo';
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-no-bind */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
|
|
4
|
+
/** ** Libraries *** */
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
/** ** Hooks *** */
|
|
8
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
import useMedia from '@zohoim/chat-components-hooks/es/Media/useMedia';
|
|
10
|
+
|
|
11
|
+
/** ** Constants *** */
|
|
12
|
+
import audioDefaultProps from './props/defaultProps';
|
|
13
|
+
import audioPropTypes from './props/propTypes';
|
|
14
|
+
|
|
15
|
+
/** ** Methods *** */
|
|
16
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
17
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
18
|
+
|
|
19
|
+
/** ** Styles *** */
|
|
20
|
+
import style from './css/Audio.module.css';
|
|
21
|
+
// import MediaControls from '../MediaControls/MediaControls';
|
|
22
|
+
|
|
23
|
+
export default function Audio(props) {
|
|
24
|
+
const {
|
|
25
|
+
customStyle,
|
|
26
|
+
controlsCustomStyle,
|
|
27
|
+
fileType,
|
|
28
|
+
fileURL
|
|
29
|
+
} = props;
|
|
30
|
+
const {
|
|
31
|
+
mediaElementRef,
|
|
32
|
+
durationTime,
|
|
33
|
+
onTogglePlay,
|
|
34
|
+
currentTime,
|
|
35
|
+
progressPercentage,
|
|
36
|
+
isMediaPlayed
|
|
37
|
+
} = useMedia(props);
|
|
38
|
+
|
|
39
|
+
/* External customization */
|
|
40
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
41
|
+
/* CSS classnames added based on logic */
|
|
42
|
+
const {
|
|
43
|
+
audioClass,
|
|
44
|
+
audioWrapperClass
|
|
45
|
+
} = cssJSLogic(props, newStyle);
|
|
46
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
47
|
+
className: audioWrapperClass
|
|
48
|
+
}, /*#__PURE__*/React.createElement("audio", {
|
|
49
|
+
preload: "metadata",
|
|
50
|
+
controls: true,
|
|
51
|
+
ref: mediaElementRef,
|
|
52
|
+
className: audioClass
|
|
53
|
+
}, /*#__PURE__*/React.createElement("source", {
|
|
54
|
+
type: fileType,
|
|
55
|
+
"data-src": fileURL
|
|
56
|
+
})));
|
|
57
|
+
}
|
|
58
|
+
Audio.propTypes = audioPropTypes;
|
|
59
|
+
Audio.defaultProps = audioDefaultProps;
|
|
60
|
+
Audio.displayName = 'Audio';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
2
|
+
import { compileClassNames } from '@zohodesk/utils';
|
|
3
|
+
export default function cssJSLogic(props, style) {
|
|
4
|
+
const audioClass = compileClassNames({
|
|
5
|
+
[style.audio]: true
|
|
6
|
+
});
|
|
7
|
+
const audioWrapperClass = compileClassNames({
|
|
8
|
+
[style.audio]: true
|
|
9
|
+
});
|
|
10
|
+
return {
|
|
11
|
+
audioClass,
|
|
12
|
+
audioWrapperClass
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Audio } from './Audio';
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-no-bind */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
|
|
4
|
+
/** ** Libraries *** */
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
/** ** Hooks *** */
|
|
8
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
|
|
10
|
+
/** ** Constants *** */
|
|
11
|
+
import audioBubbleDefaultProps from './props/defaultProps';
|
|
12
|
+
import audioBubblePropTypes from './props/propTypes';
|
|
13
|
+
|
|
14
|
+
/** ** Methods *** */
|
|
15
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
16
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
17
|
+
|
|
18
|
+
/** ** Styles *** */
|
|
19
|
+
import style from './css/AudioBubble.module.css';
|
|
20
|
+
|
|
21
|
+
/** ** Components *** */
|
|
22
|
+
import AttachmentBubbleInfo from '../AttachmentBubbleInfo/AttachmentBubbleInfo';
|
|
23
|
+
import Audio from '../Audio/Audio';
|
|
24
|
+
export default function AudioBubble(props) {
|
|
25
|
+
const {
|
|
26
|
+
customStyle,
|
|
27
|
+
// headerCustomStyle,
|
|
28
|
+
audioCustomStyle,
|
|
29
|
+
controlsCustomStyle,
|
|
30
|
+
fileName,
|
|
31
|
+
fileSize,
|
|
32
|
+
fileURL,
|
|
33
|
+
fileType
|
|
34
|
+
} = props;
|
|
35
|
+
|
|
36
|
+
/* External customization */
|
|
37
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
38
|
+
/* CSS classnames added based on logic */
|
|
39
|
+
const {
|
|
40
|
+
audioBubbleClass,
|
|
41
|
+
headerCustomStyle
|
|
42
|
+
} = cssJSLogic(props, newStyle);
|
|
43
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
44
|
+
className: audioBubbleClass
|
|
45
|
+
}, /*#__PURE__*/React.createElement(AttachmentBubbleInfo, {
|
|
46
|
+
customStyle: headerCustomStyle,
|
|
47
|
+
fileName: fileName,
|
|
48
|
+
fileSize: fileSize
|
|
49
|
+
}), /*#__PURE__*/React.createElement(Audio, {
|
|
50
|
+
customStyle: audioCustomStyle,
|
|
51
|
+
fileURL: fileURL,
|
|
52
|
+
fileType: fileType,
|
|
53
|
+
controlsCustomStyle: controlsCustomStyle
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
AudioBubble.propTypes = audioBubblePropTypes;
|
|
57
|
+
AudioBubble.defaultProps = audioBubbleDefaultProps;
|
|
58
|
+
AudioBubble.displayName = 'AudioBubble';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
2
|
+
import { compileClassNames } from "@zohodesk/utils";
|
|
3
|
+
export default function cssJSLogic(props, style) {
|
|
4
|
+
let {
|
|
5
|
+
headerCustomStyle: propHeaderCustomStyle
|
|
6
|
+
} = props;
|
|
7
|
+
const audioBubbleClass = compileClassNames({
|
|
8
|
+
[style.audioBubble]: true
|
|
9
|
+
});
|
|
10
|
+
const headerCustomStyle = compileClassNames({
|
|
11
|
+
[style.header]: true
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
audioBubbleClass,
|
|
15
|
+
headerCustomStyle: {
|
|
16
|
+
attachmentBubbleInfo: headerCustomStyle,
|
|
17
|
+
...propHeaderCustomStyle
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as AudioBubble } from './AudioBubble';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** ** Constants *** */
|
|
2
|
+
import { dummyObject } from '@zohoim/chat-components-utils/es/constants';
|
|
3
|
+
const audioBubbleDefaultProps = {
|
|
4
|
+
customStyle: dummyObject,
|
|
5
|
+
headerCustomStyle: dummyObject,
|
|
6
|
+
audioCustomStyle: dummyObject
|
|
7
|
+
};
|
|
8
|
+
export default audioBubbleDefaultProps;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
const audioBubblePropTypes = {
|
|
4
|
+
customStyle: PropTypes.object,
|
|
5
|
+
headerCustomStyle: PropTypes.object,
|
|
6
|
+
audioCustomStyle: PropTypes.object,
|
|
7
|
+
fileName: PropTypes.string,
|
|
8
|
+
fileSize: PropTypes.string,
|
|
9
|
+
fileURL: PropTypes.string,
|
|
10
|
+
fileType: PropTypes.string
|
|
11
|
+
};
|
|
12
|
+
export default audioBubblePropTypes;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-no-bind */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
|
|
4
|
+
/** ** Libraries *** */
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
/** ** Hooks *** */
|
|
8
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
9
|
+
|
|
10
|
+
/** ** Constants *** */
|
|
11
|
+
import imArticleBubbleDefaultProps from './props/defaultProps';
|
|
12
|
+
import imArticleBubblePropTypes from './props/propTypes';
|
|
13
|
+
|
|
14
|
+
/** ** Methods *** */
|
|
15
|
+
import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
|
|
16
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
17
|
+
|
|
18
|
+
/** ** Styles *** */
|
|
19
|
+
import style from './css/IMArticleBubble.module.css';
|
|
20
|
+
import useIMArticleBubble from '../../../chat-components-hooks/src/IMArticleBubble/useIMArticleBubble';
|
|
21
|
+
import ArticleBubble from '../ArticleBubble/ArticleBubble';
|
|
22
|
+
export default function IMArticleBubble(props) {
|
|
23
|
+
const {
|
|
24
|
+
customStyle,
|
|
25
|
+
articleCustomStyle,
|
|
26
|
+
articleDetails,
|
|
27
|
+
articleShareI18N
|
|
28
|
+
} = props;
|
|
29
|
+
|
|
30
|
+
/* External customization */
|
|
31
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
32
|
+
/* CSS classnames added based on logic */
|
|
33
|
+
const {
|
|
34
|
+
imArticleBubbleClass
|
|
35
|
+
} = cssJSLogic(props, newStyle);
|
|
36
|
+
const {
|
|
37
|
+
articleURL,
|
|
38
|
+
summary,
|
|
39
|
+
title
|
|
40
|
+
} = useIMArticleBubble({
|
|
41
|
+
articleDetails
|
|
42
|
+
});
|
|
43
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
44
|
+
className: imArticleBubbleClass
|
|
45
|
+
}, /*#__PURE__*/React.createElement(ArticleBubble, {
|
|
46
|
+
bubbleInfo: articleShareI18N,
|
|
47
|
+
customStyle: articleCustomStyle,
|
|
48
|
+
articleURL: articleURL,
|
|
49
|
+
summary: summary,
|
|
50
|
+
title: title
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
IMArticleBubble.propTypes = imArticleBubblePropTypes;
|
|
54
|
+
IMArticleBubble.defaultProps = imArticleBubbleDefaultProps;
|
|
55
|
+
IMArticleBubble.displayName = 'IMArticleBubble';
|