@zohoim/chat-components 0.0.2 → 0.0.4
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 +19 -9
- package/es/ActionIcon/css/cssJSLogic.js +1 -0
- package/es/ActionIcon/props/defaultProps.js +3 -1
- package/es/ActionIcon/props/propTypes.js +4 -2
- package/es/IMDateTime/css/IMDateTime.module.css +0 -0
- package/es/IMDateTime/css/cssJSLogic.js +0 -0
- package/es/IMDateTime/index.js +0 -0
- package/es/IMDateTime/props/defaultProps.js +0 -0
- package/es/IMDateTime/props/propTypes.js +0 -0
- package/es/IMIntegrationIcon/IMIntegrationIcon.js +90 -0
- package/es/IMIntegrationIcon/css/IMIntegrationIcon.module.css +98 -0
- package/es/IMIntegrationIcon/css/cssJSLogic.js +56 -0
- package/es/IMIntegrationIcon/index.js +2 -0
- package/es/IMIntegrationIcon/props/defaultProps.js +9 -0
- package/es/IMIntegrationIcon/props/propConstants.js +8 -0
- package/es/IMIntegrationIcon/props/propTypes.js +25 -0
- package/es/IMMessage/IMMessage.js +143 -0
- package/es/IMMessage/css/IMMessage.module.css +0 -0
- package/es/IMMessage/css/cssJSLogic.js +10 -0
- package/es/IMMessage/index.js +1 -0
- package/es/IMMessage/props/defaultProps.js +51 -0
- package/es/IMMessage/props/propTypes.js +98 -0
- package/es/IMMessage/renderChild/renderMessage.js +8 -0
- package/es/IMMessage/renderChild/renderMessageActions.js +8 -0
- package/es/IMMessage/renderChild/renderMessageBox.js +15 -0
- package/es/IMMessage/renderChild/renderMessageBoxFooter.js +8 -0
- package/es/IMMessage/renderChild/renderMessageFooter.js +8 -0
- package/es/IMMessage/renderChild/renderMessageHeader.js +8 -0
- package/es/IMMessage/renderChild/renderMessageOwner.js +8 -0
- package/es/IMMessage/renderChild/renderMessageStatus.js +8 -0
- package/es/IMMessageActions/IMMessageActions.js +146 -0
- package/es/IMMessageActions/css/IMMessageActions.module.css +23 -0
- package/es/IMMessageActions/css/cssJSLogic.js +20 -0
- package/es/IMMessageActions/index.js +1 -0
- package/es/IMMessageActions/props/defaultProps.js +12 -0
- package/es/IMMessageActions/props/propTypes.js +30 -0
- package/es/IMMessageAvatar/IMMessageAvatar.js +45 -0
- package/es/IMMessageAvatar/css/IMMessageAvatar.module.css +0 -0
- package/es/IMMessageAvatar/css/cssJSLogic.js +0 -0
- package/es/IMMessageAvatar/index.js +1 -0
- package/es/IMMessageAvatar/props/defaultProps.js +10 -0
- package/es/IMMessageAvatar/props/propTypes.js +28 -0
- package/es/IMMessageStatus/IMMessageStatus.js +69 -0
- package/es/IMMessageStatus/css/IMMessageStatus.module.css +12 -0
- package/es/IMMessageStatus/css/cssJSLogic.js +22 -0
- package/es/IMMessageStatus/index.js +1 -0
- package/es/IMMessageStatus/props/defaultProps.js +6 -0
- package/es/IMMessageStatus/props/propTypes.js +21 -0
- package/es/MessageAction/MessageAction.js +42 -0
- package/es/MessageAction/css/MessageAction.module.css +0 -0
- package/es/MessageAction/css/cssJSLogic.js +0 -0
- package/es/MessageAction/index.js +1 -0
- package/es/MessageAction/props/defaultProps.js +8 -0
- package/es/MessageAction/props/propTypes.js +14 -0
- package/es/MessageActions/MessageActions.js +30 -7
- package/es/MessageActions/css/MessageActions.module.css +3 -0
- package/es/MessageActions/css/cssJSLogic.js +10 -0
- package/es/MessageActions/index.js +1 -2
- package/es/MessageActions/props/defaultProps.js +6 -3
- package/es/MessageActions/props/propConstants.js +3 -1
- package/es/MessageActions/props/propTypes.js +6 -2
- package/es/MessageActionsMore/MessageActionsMore.js +23 -5
- package/es/MessageActionsMore/css/MessageActionsMore.module.css +16 -0
- package/es/MessageActionsMore/css/cssJsLogic.js +28 -0
- package/es/MessageActionsMore/props/defaultProps.js +8 -4
- package/es/MessageActionsMore/props/propTypes.js +9 -3
- package/es/MessageAvatar/MessageAvatar.js +56 -0
- package/es/MessageAvatar/css/MessageAvatar.module.css +21 -0
- package/es/MessageAvatar/css/cssJSLogic.js +18 -0
- package/es/MessageAvatar/index.js +1 -0
- package/es/MessageAvatar/props/defaultProps.js +9 -0
- package/es/MessageAvatar/props/propTypes.js +13 -0
- package/es/MessageBox/css/MessageBox.module.css +11 -0
- package/es/MessageBox/css/cssJSLogic.js +3 -1
- package/es/MessageBox/index.js +1 -2
- package/es/MessageBox/props/defaultProps.js +4 -1
- package/es/MessageBox/props/propTypes.js +6 -4
- package/es/MessageBoxFooter/MessageBoxFooter.js +10 -3
- package/es/MessageBoxFooter/css/MessageBoxFooter.module.css +3 -1
- package/es/MessageBoxFooter/css/cssJSLogic.js +10 -0
- package/es/MessageBoxFooter/index.js +1 -2
- package/es/MessageBoxFooter/props/defaultProps.js +3 -1
- package/es/MessageBoxFooter/props/propTypes.js +1 -0
- package/es/MessageBubble/MessageBubble.js +13 -17
- package/es/MessageBubble/css/MessageBubble.module.css +5 -0
- package/es/MessageBubble/css/cssJSLogic.js +5 -12
- package/es/MessageBubble/index.js +1 -2
- package/es/MessageBubble/props/defaultProps.js +6 -4
- package/es/MessageBubble/props/propConstants.js +6 -6
- package/es/MessageBubble/props/propTypes.js +8 -7
- package/es/MoreActionItem/MoreActionItem.js +75 -0
- package/es/MoreActionItem/css/MoreActionItem.module.css +31 -0
- package/es/MoreActionItem/css/cssJSLogic.js +27 -0
- package/es/MoreActionItem/index.js +1 -0
- package/es/MoreActionItem/props/defaultProps.js +11 -0
- package/es/MoreActionItem/props/propTypes.js +12 -0
- package/es/TextMessage/DefaultActions.js +0 -1
- package/es/TextMessage/TextMessage.js +6 -6
- package/es/Theme/defaultTheme.js +20 -3
- package/es/icons/create-icon-components.js +141 -0
- package/es/icons/factory/actions/convertTicket.svg +21 -0
- package/es/icons/factory/integrations/chInstagram.svg +4 -0
- package/es/icons/factory/integrations/chWhatsApp.svg +4 -0
- package/es/icons/factory/integrations/ttASAP.svg +1 -0
- package/es/icons/factory/integrations/ttTelegram.svg +1 -0
- package/es/icons/factory/integrations/ttTwillio.svg +1 -0
- package/es/icons/factory/integrations/ttTwitter.svg +1 -0
- package/es/icons/factory/integrations/ttWechat.svg +1 -0
- package/es/icons/factory/messageStatus/clock.svg +7 -0
- package/es/icons/factory/messageStatus/doubleTick.svg +1 -0
- package/es/icons/factory/messageStatus/failed.svg +7 -0
- package/es/icons/factory/messageStatus/tick.svg +1 -0
- package/es/icons/icon.template.js +27 -0
- package/es/icons/iconSrc/actions/ConvertTicket.js +24 -0
- package/es/icons/iconSrc/actions/index.js +1 -0
- package/es/icons/iconSrc/integrations/ChInstagram.js +17 -0
- package/es/icons/iconSrc/integrations/ChWhatsApp.js +19 -0
- package/es/icons/iconSrc/integrations/TtASAP.js +31 -0
- package/es/icons/iconSrc/integrations/TtTelegram.js +21 -0
- package/es/icons/iconSrc/integrations/TtTwillio.js +35 -0
- package/es/icons/iconSrc/integrations/TtTwitter.js +40 -0
- package/es/icons/iconSrc/integrations/TtWechat.js +41 -0
- package/es/icons/iconSrc/integrations/index.js +7 -0
- package/es/icons/iconSrc/messageStatus/Clock.js +13 -0
- package/es/icons/iconSrc/messageStatus/DoubleTick.js +15 -0
- package/es/icons/iconSrc/messageStatus/Failed.js +13 -0
- package/es/icons/iconSrc/messageStatus/Tick.js +12 -0
- package/es/icons/iconSrc/messageStatus/index.js +4 -0
- package/es/index.js +10 -1
- package/es/{AvatarSpace → unused/AvatarSpace}/AvatarSpace.js +5 -0
- package/package.json +15 -9
- /package/es/{MessageBoxFooter/css/cssJsLogic.js → IMDateTime/IMDateTime.js} +0 -0
- /package/es/{AvatarSpace → unused/AvatarSpace}/css/AvatarSpace.module.css +0 -0
- /package/es/{AvatarSpace → unused/AvatarSpace}/css/cssJSLogic.js +0 -0
- /package/es/{AvatarSpace → unused/AvatarSpace}/index.js +0 -0
- /package/es/{AvatarSpace → unused/AvatarSpace}/props/defaultProps.js +0 -0
- /package/es/{AvatarSpace → unused/AvatarSpace}/props/propConstants.js +0 -0
- /package/es/{AvatarSpace → unused/AvatarSpace}/props/propTypes.js +0 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/* eslint-disable max-len */
|
|
2
|
+
|
|
3
|
+
/** ** Libraries *** */
|
|
4
|
+
import React from 'react';
|
|
5
|
+
|
|
6
|
+
/** ** Components *** */
|
|
7
|
+
import MoreActionItem from '../MoreActionItem/MoreActionItem';
|
|
8
|
+
import ActionIcon from '../ActionIcon/ActionIcon';
|
|
9
|
+
|
|
10
|
+
/** ** Constants *** */
|
|
11
|
+
import messageActionsDefaultProps from './props/defaultProps';
|
|
12
|
+
import messageActionsPropTypes from './props/propTypes';
|
|
13
|
+
export default function MessageAction(props) {
|
|
14
|
+
const {
|
|
15
|
+
displayText,
|
|
16
|
+
id,
|
|
17
|
+
index,
|
|
18
|
+
renderIcon,
|
|
19
|
+
onClick,
|
|
20
|
+
isShowInMore,
|
|
21
|
+
iconTitle,
|
|
22
|
+
actionIconCustomStyle,
|
|
23
|
+
moreItemCustomStyle
|
|
24
|
+
} = props;
|
|
25
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, isShowInMore ? /*#__PURE__*/React.createElement(MoreActionItem, {
|
|
26
|
+
displayText: displayText,
|
|
27
|
+
iconTitle: iconTitle,
|
|
28
|
+
id: id,
|
|
29
|
+
index: index,
|
|
30
|
+
customStyle: moreItemCustomStyle,
|
|
31
|
+
onClick: onClick,
|
|
32
|
+
renderIcon: renderIcon
|
|
33
|
+
}) : /*#__PURE__*/React.createElement(ActionIcon, {
|
|
34
|
+
renderIcon: renderIcon,
|
|
35
|
+
customStyle: actionIconCustomStyle,
|
|
36
|
+
onClick: onClick,
|
|
37
|
+
id: id,
|
|
38
|
+
title: iconTitle
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
MessageAction.propTypes = messageActionsPropTypes;
|
|
42
|
+
MessageAction.defaultProps = messageActionsDefaultProps;
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as MessageAction } from './MessageAction';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** ** Constants *** */
|
|
2
|
+
import { dummyObject } from '@zohoim/chat-components-utils/es/constants';
|
|
3
|
+
const messageActionDefaultProps = {
|
|
4
|
+
actionIconCustomStyle: dummyObject,
|
|
5
|
+
moreItemCustomStyle: dummyObject,
|
|
6
|
+
isShowInMore: false
|
|
7
|
+
};
|
|
8
|
+
export default messageActionDefaultProps;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
const messageActionPropTypes = {
|
|
4
|
+
displayText: PropTypes.string,
|
|
5
|
+
id: PropTypes.string,
|
|
6
|
+
index: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
7
|
+
renderIcon: PropTypes.func,
|
|
8
|
+
onClick: PropTypes.func,
|
|
9
|
+
isShowInMore: PropTypes.bool,
|
|
10
|
+
iconTitle: PropTypes.string,
|
|
11
|
+
actionIconCustomStyle: PropTypes.object,
|
|
12
|
+
moreItemCustomStyle: PropTypes.object
|
|
13
|
+
};
|
|
14
|
+
export default messageActionPropTypes;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/* eslint-disable max-len */
|
|
2
|
+
|
|
3
|
+
/** ** Libraries *** */
|
|
2
4
|
import React from 'react';
|
|
3
5
|
|
|
4
6
|
/** ** Components *** */
|
|
5
7
|
import { Container } from '@zohodesk/components/lib/Layout';
|
|
6
|
-
import
|
|
8
|
+
import MessageActionsMore from '../MessageActionsMore/MessageActionsMore';
|
|
7
9
|
|
|
8
10
|
/** ** Hooks *** */
|
|
9
11
|
import { useMessageAction } from '@zohoim/chat-components-hooks';
|
|
@@ -15,35 +17,56 @@ import constantProps from './props/propConstants';
|
|
|
15
17
|
|
|
16
18
|
/** ** Methods *** */
|
|
17
19
|
import renderHandler from '@zohoim/chat-components-utils/es/renderHandler';
|
|
20
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
21
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
22
|
+
|
|
23
|
+
/** ** Style *** */
|
|
24
|
+
import style from './css/MessageActions.module.css';
|
|
18
25
|
function MessageActions(props) {
|
|
19
26
|
const {
|
|
20
27
|
actions,
|
|
21
28
|
renderMoreIcon,
|
|
22
|
-
|
|
29
|
+
defaultShowCount,
|
|
30
|
+
customStyle,
|
|
31
|
+
morePopupCustomStyle
|
|
23
32
|
} = props;
|
|
33
|
+
|
|
34
|
+
/* external customization */
|
|
35
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
36
|
+
/* css classnames added based on logic */
|
|
37
|
+
const {
|
|
38
|
+
actionsClass
|
|
39
|
+
} = cssJSLogic(props, newStyle);
|
|
24
40
|
const {
|
|
25
41
|
isShowMore: isShowMoreIcon,
|
|
26
42
|
revampedActions = []
|
|
27
|
-
} = useMessageAction(actions,
|
|
43
|
+
} = useMessageAction(actions, defaultShowCount);
|
|
28
44
|
const {
|
|
29
45
|
defaultActions = [],
|
|
30
46
|
moreActions
|
|
31
47
|
} = revampedActions;
|
|
32
48
|
function renderRow(defaultActions, isShowMore) {
|
|
33
|
-
return /*#__PURE__*/React.createElement(
|
|
49
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Container, {
|
|
34
50
|
alignBox: "row"
|
|
35
51
|
}, defaultActions.map(action => {
|
|
36
52
|
const {
|
|
37
53
|
id,
|
|
38
54
|
renderFunction
|
|
39
55
|
} = action;
|
|
40
|
-
return renderHandler(renderFunction)(
|
|
56
|
+
return renderHandler(renderFunction)({
|
|
57
|
+
id,
|
|
58
|
+
isShowInMore: false,
|
|
59
|
+
action
|
|
60
|
+
}); // id, isRenderInMorePopup
|
|
41
61
|
}), isShowMore ? /*#__PURE__*/React.createElement(MessageActionsMore, {
|
|
42
62
|
actions: moreActions,
|
|
43
|
-
renderMoreIcon: renderMoreIcon
|
|
63
|
+
renderMoreIcon: renderMoreIcon,
|
|
64
|
+
customStyle: morePopupCustomStyle
|
|
44
65
|
}) : null));
|
|
45
66
|
}
|
|
46
|
-
return /*#__PURE__*/React.createElement("div",
|
|
67
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
68
|
+
className: actionsClass
|
|
69
|
+
}, renderRow(defaultActions, isShowMoreIcon));
|
|
47
70
|
}
|
|
48
71
|
MessageActions.defaultProps = messageActionsDefaultProps;
|
|
49
72
|
MessageActions.propTypes = messageActionsPropTypes;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export { default as MessageActions } from './MessageActions';
|
|
2
|
-
export { default as MessageActionsPropTypes } from './props/propTypes';
|
|
1
|
+
export { default as MessageActions } from './MessageActions';
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
/** ** Constants *** */
|
|
2
|
+
import { dummyObject, dummyArray } from '@zohoim/chat-components-utils/es/constants';
|
|
1
3
|
import propConstants from './propConstants';
|
|
2
4
|
const messageActionsDefaultProps = {
|
|
3
|
-
actions:
|
|
4
|
-
customStyle:
|
|
5
|
-
|
|
5
|
+
actions: dummyArray,
|
|
6
|
+
customStyle: dummyObject,
|
|
7
|
+
morePopupCustomStyle: dummyObject,
|
|
8
|
+
defaultShowCount: propConstants.actions.defaultShowCount
|
|
6
9
|
};
|
|
7
10
|
export default messageActionsDefaultProps;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
1
2
|
import PropTypes from 'prop-types';
|
|
2
3
|
const messageActionsPropTypes = {
|
|
3
4
|
renderMoreIcon: PropTypes.func,
|
|
4
|
-
actions: PropTypes.arrayOf(PropTypes.
|
|
5
|
-
|
|
5
|
+
actions: PropTypes.arrayOf(PropTypes.shape({
|
|
6
|
+
id: PropTypes.string.isRequired,
|
|
7
|
+
renderFunction: PropTypes.func
|
|
8
|
+
})).isRequired,
|
|
9
|
+
defaultShowCount: PropTypes.number,
|
|
6
10
|
customStyle: PropTypes.object
|
|
7
11
|
};
|
|
8
12
|
export default messageActionsPropTypes;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
2
|
-
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
3
1
|
/* eslint-disable max-len */
|
|
4
2
|
|
|
5
3
|
/** ** Libraries *** */
|
|
@@ -16,6 +14,10 @@ import { MSG_ACTION_POPUP_PORTAL } from '../constants';
|
|
|
16
14
|
|
|
17
15
|
/** ** Methods *** */
|
|
18
16
|
import renderHandler from '@zohoim/chat-components-utils/es/renderHandler';
|
|
17
|
+
import cssJSLogic from './css/cssJsLogic';
|
|
18
|
+
|
|
19
|
+
/** ** Hooks *** */
|
|
20
|
+
import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
|
|
19
21
|
|
|
20
22
|
/** ** Styles *** */
|
|
21
23
|
import style from './css/MessageActionsMore.module.css';
|
|
@@ -24,6 +26,7 @@ function MessageActionsMoreComp(props) {
|
|
|
24
26
|
actions,
|
|
25
27
|
renderMoreIcon,
|
|
26
28
|
customStyle,
|
|
29
|
+
popupSize,
|
|
27
30
|
/**** Popup Props ****/
|
|
28
31
|
getTargetRef,
|
|
29
32
|
getContainerRef,
|
|
@@ -36,8 +39,16 @@ function MessageActionsMoreComp(props) {
|
|
|
36
39
|
positionsOffset
|
|
37
40
|
} = props;
|
|
38
41
|
const moreIcon = renderHandler(renderMoreIcon)();
|
|
42
|
+
|
|
43
|
+
/* External customization */
|
|
44
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
45
|
+
/* CSS classnames added based on logic */
|
|
46
|
+
const {
|
|
47
|
+
popupClass,
|
|
48
|
+
morePopupContainerClass
|
|
49
|
+
} = cssJSLogic(props, newStyle);
|
|
39
50
|
return /*#__PURE__*/React.createElement("span", {
|
|
40
|
-
className:
|
|
51
|
+
className: morePopupContainerClass
|
|
41
52
|
}, moreIcon ? /*#__PURE__*/React.createElement("div", {
|
|
42
53
|
onClick: togglePopup,
|
|
43
54
|
ref: getTargetRef
|
|
@@ -52,19 +63,26 @@ function MessageActionsMoreComp(props) {
|
|
|
52
63
|
positionMapping: positionsOffset,
|
|
53
64
|
positionsOffset: positionsOffset,
|
|
54
65
|
portalId: MSG_ACTION_POPUP_PORTAL,
|
|
55
|
-
size:
|
|
66
|
+
size: popupSize,
|
|
67
|
+
customClass: popupClass
|
|
56
68
|
// isModel
|
|
57
69
|
}, actions.map(action => {
|
|
58
70
|
const {
|
|
59
71
|
id,
|
|
60
72
|
renderFunction
|
|
61
73
|
} = action;
|
|
62
|
-
return renderHandler(renderFunction)(
|
|
74
|
+
return renderHandler(renderFunction)({
|
|
75
|
+
id,
|
|
76
|
+
isShowInMore: true,
|
|
77
|
+
action
|
|
78
|
+
}); // id, isRenderInMorePopup
|
|
63
79
|
})) : null);
|
|
64
80
|
}
|
|
65
81
|
const MessageActionsMore = Popup(MessageActionsMoreComp, '', '', {
|
|
66
82
|
isAbsolutePositioningNeeded: false
|
|
67
83
|
});
|
|
84
|
+
MessageActionsMoreComp.defaultProps = messageActionsMoreDefaultProps;
|
|
85
|
+
MessageActionsMoreComp.propTypes = messageActionsMorePropTypes;
|
|
68
86
|
MessageActionsMore.defaultProps = messageActionsMoreDefaultProps;
|
|
69
87
|
MessageActionsMore.propTypes = messageActionsMorePropTypes;
|
|
70
88
|
MessageActionsMore.displayName = 'MessageActionsMore';
|
|
@@ -1,3 +1,19 @@
|
|
|
1
1
|
.container {
|
|
2
2
|
display: inline-block;
|
|
3
3
|
}
|
|
4
|
+
|
|
5
|
+
.popup {
|
|
6
|
+
/* use this class name for popup customization*/
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.popupWrapper {
|
|
10
|
+
/* use this class name for popup wrapper customization*/
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.mobilePopup {
|
|
14
|
+
/* use this class name for mobile popup customization*/
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.mobilePopupWrapper {
|
|
18
|
+
/* use this class name for mobile popup wrapper customization*/
|
|
19
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
2
|
+
import { compileClassNames } from '@zohodesk/utils';
|
|
3
|
+
export default function cssJSLogic(props, style) {
|
|
4
|
+
const popupClass = compileClassNames({
|
|
5
|
+
[style.popup]: true
|
|
6
|
+
});
|
|
7
|
+
const morePopupContainerClass = compileClassNames({
|
|
8
|
+
[style.container]: true
|
|
9
|
+
});
|
|
10
|
+
const popupWrapperClass = compileClassNames({
|
|
11
|
+
[style.container]: true
|
|
12
|
+
});
|
|
13
|
+
const mobilePopupClass = compileClassNames({
|
|
14
|
+
[style.container]: true
|
|
15
|
+
});
|
|
16
|
+
const mobilePopupWrapperClass = compileClassNames({
|
|
17
|
+
[style.container]: true
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
popupClass: {
|
|
21
|
+
customDropBox: popupClass,
|
|
22
|
+
customMobileDropBox: mobilePopupClass,
|
|
23
|
+
customDropBoxWrap: popupWrapperClass,
|
|
24
|
+
customMobileDropBoxWrap: mobilePopupWrapperClass
|
|
25
|
+
},
|
|
26
|
+
morePopupContainerClass
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/** ** Constants *** */
|
|
2
|
+
import { dummyObject, dummyArray } from '@zohoim/chat-components-utils/es/constants';
|
|
3
|
+
const messageActionsMoreDefaultProps = {
|
|
4
|
+
customStyle: dummyObject,
|
|
5
|
+
actions: dummyArray,
|
|
6
|
+
popupSize: 'small'
|
|
7
|
+
};
|
|
8
|
+
export default messageActionsMoreDefaultProps;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
1
2
|
import PropTypes from 'prop-types';
|
|
2
|
-
|
|
3
|
+
const messageActionsMorePropTypes = {
|
|
4
|
+
actions: PropTypes.arrayOf(PropTypes.shape({
|
|
5
|
+
id: PropTypes.string.isRequired,
|
|
6
|
+
renderFunction: PropTypes.func
|
|
7
|
+
})).isRequired,
|
|
3
8
|
renderMoreIcon: PropTypes.func,
|
|
4
9
|
customStyle: PropTypes.object,
|
|
5
|
-
|
|
6
|
-
};
|
|
10
|
+
popupSize: PropTypes.string
|
|
11
|
+
};
|
|
12
|
+
export default messageActionsMorePropTypes;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
/** ** Components *** */
|
|
5
|
+
import Avatar from "@zohodesk/components/es/Avatar/Avatar";
|
|
6
|
+
import { Container, Box } from "@zohodesk/components/es/Layout";
|
|
7
|
+
|
|
8
|
+
/** ** CSS *** */
|
|
9
|
+
import style from "./css/MessageAvatar.module.css";
|
|
10
|
+
|
|
11
|
+
/** ** Methods *** */
|
|
12
|
+
import useMergeStyle from "@zohodesk/hooks/es/utils/useMergeStyle";
|
|
13
|
+
import renderHandler from "@zohoim/chat-components-utils/es/renderHandler";
|
|
14
|
+
import cssJSLogic from "./css/cssJSLogic";
|
|
15
|
+
|
|
16
|
+
/** ** Constants *** */
|
|
17
|
+
import messageAvatarDefaultProps from "./props/defaultProps";
|
|
18
|
+
import messageAvatarPropTypes from "./props/propTypes";
|
|
19
|
+
export default function MessageAvatar(props) {
|
|
20
|
+
const {
|
|
21
|
+
src,
|
|
22
|
+
alternateSrc,
|
|
23
|
+
title,
|
|
24
|
+
size,
|
|
25
|
+
name,
|
|
26
|
+
customStyle,
|
|
27
|
+
iconTitle,
|
|
28
|
+
renderIcon
|
|
29
|
+
} = props;
|
|
30
|
+
|
|
31
|
+
/* external customization */
|
|
32
|
+
const newStyle = useMergeStyle(style, customStyle);
|
|
33
|
+
const icon = renderHandler(renderIcon)();
|
|
34
|
+
|
|
35
|
+
/* css classnames added based on logic */
|
|
36
|
+
const {
|
|
37
|
+
avatarWrapperClass,
|
|
38
|
+
iconClass,
|
|
39
|
+
avatarClass
|
|
40
|
+
} = cssJSLogic(props, newStyle);
|
|
41
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
42
|
+
className: avatarWrapperClass
|
|
43
|
+
}, /*#__PURE__*/React.createElement(Avatar, {
|
|
44
|
+
src: src,
|
|
45
|
+
alternateSrc: alternateSrc,
|
|
46
|
+
title: title,
|
|
47
|
+
size: size,
|
|
48
|
+
name: name,
|
|
49
|
+
customClass: avatarClass
|
|
50
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
51
|
+
className: iconClass,
|
|
52
|
+
"data-title": iconTitle
|
|
53
|
+
}, icon));
|
|
54
|
+
}
|
|
55
|
+
MessageAvatar.defaultProps = messageAvatarDefaultProps;
|
|
56
|
+
MessageAvatar.propTypes = messageAvatarPropTypes;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.msgAvatar {
|
|
2
|
+
position: relative;
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.icon {
|
|
7
|
+
position: absolute;
|
|
8
|
+
bottom: -6px;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[dir=ltr] .icon {
|
|
12
|
+
right: -7px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
[dir=rtl] .icon {
|
|
16
|
+
left: -7px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.avatar {
|
|
20
|
+
/* Use this class name for external customization */
|
|
21
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
2
|
+
import { compileClassNames } from '@zohodesk/utils';
|
|
3
|
+
export default function cssJSLogic(props, style) {
|
|
4
|
+
const iconClass = compileClassNames({
|
|
5
|
+
[style.icon]: true
|
|
6
|
+
});
|
|
7
|
+
const avatarWrapperClass = compileClassNames({
|
|
8
|
+
[style.msgAvatar]: true
|
|
9
|
+
});
|
|
10
|
+
const avatarClass = compileClassNames({
|
|
11
|
+
[style.avatar]: true
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
iconClass,
|
|
15
|
+
avatarWrapperClass,
|
|
16
|
+
avatarClass
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as MessageAvatar } from './MessageAvatar';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** ** Constants *** */
|
|
2
|
+
import { dummyObject } from '@zohoim/chat-components-utils/es/constants';
|
|
3
|
+
const messageAvatarDefaultProps = {
|
|
4
|
+
customStyle: dummyObject,
|
|
5
|
+
name: 'RAVI KUMAR',
|
|
6
|
+
size: 'small',
|
|
7
|
+
iconTitle: 'RK'
|
|
8
|
+
};
|
|
9
|
+
export default messageAvatarDefaultProps;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
const messageAvatarPropTypes = {
|
|
4
|
+
src: PropTypes.string,
|
|
5
|
+
alternateSrc: PropTypes.string,
|
|
6
|
+
title: PropTypes.string,
|
|
7
|
+
size: PropTypes.string,
|
|
8
|
+
name: PropTypes.string,
|
|
9
|
+
iconTitle: PropTypes.string,
|
|
10
|
+
renderIcon: PropTypes.func,
|
|
11
|
+
customStyle: PropTypes.object
|
|
12
|
+
};
|
|
13
|
+
export default messageAvatarPropTypes;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
.varClass {
|
|
2
2
|
--messageBox-content_padding: var(--imlib_size_14);
|
|
3
|
+
--messageBox-content_size: var(--imlib_size_14);
|
|
3
4
|
--messageBox-border_radius: var(--imlib_size_9);
|
|
4
5
|
--messageBox-message_status_gap: var(--imlib_size_12);
|
|
5
6
|
--messageBox-message_header_gap: var(--imlib_size_1);
|
|
@@ -13,14 +14,20 @@
|
|
|
13
14
|
display: inline-flex;
|
|
14
15
|
flex-direction: row;
|
|
15
16
|
align-items: flex-end;
|
|
17
|
+
color: var(--imlib_chat_components_messageBox_text_color);
|
|
16
18
|
/* max-width: var(--messageBox-max_width); */
|
|
17
19
|
word-wrap: break-word;
|
|
20
|
+
font-size: var(--messageBox-content_size);
|
|
18
21
|
|
|
19
22
|
background-color: var(--imlib_chat_components_messageBox_bg_color);
|
|
20
23
|
padding: var(--messageBox-content_padding);
|
|
21
24
|
border-radius: var(--messageBox-border_radius);
|
|
22
25
|
}
|
|
23
26
|
|
|
27
|
+
.messageContentWrapper {
|
|
28
|
+
/*Use this class for message content customization*/
|
|
29
|
+
}
|
|
30
|
+
|
|
24
31
|
.messageHeaderWrapper {
|
|
25
32
|
margin-bottom: var(--messageBox-message_header_gap);
|
|
26
33
|
}
|
|
@@ -36,3 +43,7 @@
|
|
|
36
43
|
[dir=rtl] .messageStatusWrapper {
|
|
37
44
|
margin-right: var(--messageBox-message_status_gap);
|
|
38
45
|
}
|
|
46
|
+
|
|
47
|
+
.failedMessageBox {
|
|
48
|
+
background-color: var(--imlib_chat_components_messageBox_failed_bg_color);
|
|
49
|
+
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
/** ** Methods *** */
|
|
1
2
|
import { compileClassNames } from '@zohodesk/utils';
|
|
2
3
|
export default function cssJSLogic(props, style) {
|
|
3
4
|
const messageBoxClass = compileClassNames({
|
|
4
|
-
[style.messageBoxContainer]: true
|
|
5
|
+
[style.messageBoxContainer]: true,
|
|
6
|
+
[style.failedMessageBox]: props.isFailed === true
|
|
5
7
|
});
|
|
6
8
|
const messageContentWrapperClass = compileClassNames({
|
|
7
9
|
[style.messageContentWrapper]: true
|
package/es/MessageBox/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export { default as MessageBox } from './MessageBox';
|
|
2
|
-
export { default as MessageBoxPropTypes } from './props/propTypes';
|
|
1
|
+
export { default as MessageBox } from './MessageBox';
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
/** ** Libraries *** */
|
|
1
2
|
import PropTypes from 'prop-types';
|
|
2
3
|
export default {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
renderMessageBoxHeader: PropTypes.func,
|
|
4
|
+
renderMessageFooter: PropTypes.func,
|
|
5
|
+
renderMessageHeader: PropTypes.func,
|
|
6
6
|
renderMessageStatus: PropTypes.func,
|
|
7
|
-
|
|
7
|
+
renderMessage: PropTypes.func.isRequired,
|
|
8
|
+
customStyle: PropTypes.object,
|
|
9
|
+
isFailed: PropTypes.bool
|
|
8
10
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* eslint-disable max-len */
|
|
2
|
+
|
|
2
3
|
/** ** Libraries *** */
|
|
3
4
|
import React from 'react';
|
|
4
5
|
|
|
@@ -14,17 +15,23 @@ import style from './css/MessageBoxFooter.module.css';
|
|
|
14
15
|
|
|
15
16
|
/** ** Methods *** */
|
|
16
17
|
import renderHandler from '@zohoim/chat-components-utils/es/renderHandler';
|
|
18
|
+
import cssJSLogic from './css/cssJSLogic';
|
|
17
19
|
function MessageBoxFooter(props) {
|
|
18
20
|
const {
|
|
19
21
|
renderFooter,
|
|
20
22
|
customStyle
|
|
21
23
|
} = props;
|
|
24
|
+
const footer = renderHandler(renderFooter)();
|
|
22
25
|
|
|
23
26
|
/* external customization */
|
|
24
27
|
const newStyle = useMergeStyle(style, customStyle);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
/* CSS classnames added based on logic */
|
|
29
|
+
const {
|
|
30
|
+
footerClass
|
|
31
|
+
} = cssJSLogic(props, newStyle);
|
|
32
|
+
return footer ? /*#__PURE__*/React.createElement("div", {
|
|
33
|
+
className: footerClass
|
|
34
|
+
}, footer) : null;
|
|
28
35
|
}
|
|
29
36
|
MessageBoxFooter.propTypes = messageBoxFooterPropTypes;
|
|
30
37
|
MessageBoxFooter.defaultProps = messageBoxFooterDefaultProps;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export { default as MessageBoxFooter } from './MessageBoxFooter';
|
|
2
|
-
export { default as MessageBoxFooterPropTypes } from './props/propTypes';
|
|
1
|
+
export { default as MessageBoxFooter } from './MessageBoxFooter';
|