@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.
Files changed (138) hide show
  1. package/es/ActionIcon/ActionIcon.js +19 -9
  2. package/es/ActionIcon/css/cssJSLogic.js +1 -0
  3. package/es/ActionIcon/props/defaultProps.js +3 -1
  4. package/es/ActionIcon/props/propTypes.js +4 -2
  5. package/es/IMDateTime/css/IMDateTime.module.css +0 -0
  6. package/es/IMDateTime/css/cssJSLogic.js +0 -0
  7. package/es/IMDateTime/index.js +0 -0
  8. package/es/IMDateTime/props/defaultProps.js +0 -0
  9. package/es/IMDateTime/props/propTypes.js +0 -0
  10. package/es/IMIntegrationIcon/IMIntegrationIcon.js +90 -0
  11. package/es/IMIntegrationIcon/css/IMIntegrationIcon.module.css +98 -0
  12. package/es/IMIntegrationIcon/css/cssJSLogic.js +56 -0
  13. package/es/IMIntegrationIcon/index.js +2 -0
  14. package/es/IMIntegrationIcon/props/defaultProps.js +9 -0
  15. package/es/IMIntegrationIcon/props/propConstants.js +8 -0
  16. package/es/IMIntegrationIcon/props/propTypes.js +25 -0
  17. package/es/IMMessage/IMMessage.js +143 -0
  18. package/es/IMMessage/css/IMMessage.module.css +0 -0
  19. package/es/IMMessage/css/cssJSLogic.js +10 -0
  20. package/es/IMMessage/index.js +1 -0
  21. package/es/IMMessage/props/defaultProps.js +51 -0
  22. package/es/IMMessage/props/propTypes.js +98 -0
  23. package/es/IMMessage/renderChild/renderMessage.js +8 -0
  24. package/es/IMMessage/renderChild/renderMessageActions.js +8 -0
  25. package/es/IMMessage/renderChild/renderMessageBox.js +15 -0
  26. package/es/IMMessage/renderChild/renderMessageBoxFooter.js +8 -0
  27. package/es/IMMessage/renderChild/renderMessageFooter.js +8 -0
  28. package/es/IMMessage/renderChild/renderMessageHeader.js +8 -0
  29. package/es/IMMessage/renderChild/renderMessageOwner.js +8 -0
  30. package/es/IMMessage/renderChild/renderMessageStatus.js +8 -0
  31. package/es/IMMessageActions/IMMessageActions.js +146 -0
  32. package/es/IMMessageActions/css/IMMessageActions.module.css +23 -0
  33. package/es/IMMessageActions/css/cssJSLogic.js +20 -0
  34. package/es/IMMessageActions/index.js +1 -0
  35. package/es/IMMessageActions/props/defaultProps.js +12 -0
  36. package/es/IMMessageActions/props/propTypes.js +30 -0
  37. package/es/IMMessageAvatar/IMMessageAvatar.js +45 -0
  38. package/es/IMMessageAvatar/css/IMMessageAvatar.module.css +0 -0
  39. package/es/IMMessageAvatar/css/cssJSLogic.js +0 -0
  40. package/es/IMMessageAvatar/index.js +1 -0
  41. package/es/IMMessageAvatar/props/defaultProps.js +10 -0
  42. package/es/IMMessageAvatar/props/propTypes.js +28 -0
  43. package/es/IMMessageStatus/IMMessageStatus.js +69 -0
  44. package/es/IMMessageStatus/css/IMMessageStatus.module.css +12 -0
  45. package/es/IMMessageStatus/css/cssJSLogic.js +22 -0
  46. package/es/IMMessageStatus/index.js +1 -0
  47. package/es/IMMessageStatus/props/defaultProps.js +6 -0
  48. package/es/IMMessageStatus/props/propTypes.js +21 -0
  49. package/es/MessageAction/MessageAction.js +42 -0
  50. package/es/MessageAction/css/MessageAction.module.css +0 -0
  51. package/es/MessageAction/css/cssJSLogic.js +0 -0
  52. package/es/MessageAction/index.js +1 -0
  53. package/es/MessageAction/props/defaultProps.js +8 -0
  54. package/es/MessageAction/props/propTypes.js +14 -0
  55. package/es/MessageActions/MessageActions.js +30 -7
  56. package/es/MessageActions/css/MessageActions.module.css +3 -0
  57. package/es/MessageActions/css/cssJSLogic.js +10 -0
  58. package/es/MessageActions/index.js +1 -2
  59. package/es/MessageActions/props/defaultProps.js +6 -3
  60. package/es/MessageActions/props/propConstants.js +3 -1
  61. package/es/MessageActions/props/propTypes.js +6 -2
  62. package/es/MessageActionsMore/MessageActionsMore.js +23 -5
  63. package/es/MessageActionsMore/css/MessageActionsMore.module.css +16 -0
  64. package/es/MessageActionsMore/css/cssJsLogic.js +28 -0
  65. package/es/MessageActionsMore/props/defaultProps.js +8 -4
  66. package/es/MessageActionsMore/props/propTypes.js +9 -3
  67. package/es/MessageAvatar/MessageAvatar.js +56 -0
  68. package/es/MessageAvatar/css/MessageAvatar.module.css +21 -0
  69. package/es/MessageAvatar/css/cssJSLogic.js +18 -0
  70. package/es/MessageAvatar/index.js +1 -0
  71. package/es/MessageAvatar/props/defaultProps.js +9 -0
  72. package/es/MessageAvatar/props/propTypes.js +13 -0
  73. package/es/MessageBox/css/MessageBox.module.css +11 -0
  74. package/es/MessageBox/css/cssJSLogic.js +3 -1
  75. package/es/MessageBox/index.js +1 -2
  76. package/es/MessageBox/props/defaultProps.js +4 -1
  77. package/es/MessageBox/props/propTypes.js +6 -4
  78. package/es/MessageBoxFooter/MessageBoxFooter.js +10 -3
  79. package/es/MessageBoxFooter/css/MessageBoxFooter.module.css +3 -1
  80. package/es/MessageBoxFooter/css/cssJSLogic.js +10 -0
  81. package/es/MessageBoxFooter/index.js +1 -2
  82. package/es/MessageBoxFooter/props/defaultProps.js +3 -1
  83. package/es/MessageBoxFooter/props/propTypes.js +1 -0
  84. package/es/MessageBubble/MessageBubble.js +13 -17
  85. package/es/MessageBubble/css/MessageBubble.module.css +5 -0
  86. package/es/MessageBubble/css/cssJSLogic.js +5 -12
  87. package/es/MessageBubble/index.js +1 -2
  88. package/es/MessageBubble/props/defaultProps.js +6 -4
  89. package/es/MessageBubble/props/propConstants.js +6 -6
  90. package/es/MessageBubble/props/propTypes.js +8 -7
  91. package/es/MoreActionItem/MoreActionItem.js +75 -0
  92. package/es/MoreActionItem/css/MoreActionItem.module.css +31 -0
  93. package/es/MoreActionItem/css/cssJSLogic.js +27 -0
  94. package/es/MoreActionItem/index.js +1 -0
  95. package/es/MoreActionItem/props/defaultProps.js +11 -0
  96. package/es/MoreActionItem/props/propTypes.js +12 -0
  97. package/es/TextMessage/DefaultActions.js +0 -1
  98. package/es/TextMessage/TextMessage.js +6 -6
  99. package/es/Theme/defaultTheme.js +20 -3
  100. package/es/icons/create-icon-components.js +141 -0
  101. package/es/icons/factory/actions/convertTicket.svg +21 -0
  102. package/es/icons/factory/integrations/chInstagram.svg +4 -0
  103. package/es/icons/factory/integrations/chWhatsApp.svg +4 -0
  104. package/es/icons/factory/integrations/ttASAP.svg +1 -0
  105. package/es/icons/factory/integrations/ttTelegram.svg +1 -0
  106. package/es/icons/factory/integrations/ttTwillio.svg +1 -0
  107. package/es/icons/factory/integrations/ttTwitter.svg +1 -0
  108. package/es/icons/factory/integrations/ttWechat.svg +1 -0
  109. package/es/icons/factory/messageStatus/clock.svg +7 -0
  110. package/es/icons/factory/messageStatus/doubleTick.svg +1 -0
  111. package/es/icons/factory/messageStatus/failed.svg +7 -0
  112. package/es/icons/factory/messageStatus/tick.svg +1 -0
  113. package/es/icons/icon.template.js +27 -0
  114. package/es/icons/iconSrc/actions/ConvertTicket.js +24 -0
  115. package/es/icons/iconSrc/actions/index.js +1 -0
  116. package/es/icons/iconSrc/integrations/ChInstagram.js +17 -0
  117. package/es/icons/iconSrc/integrations/ChWhatsApp.js +19 -0
  118. package/es/icons/iconSrc/integrations/TtASAP.js +31 -0
  119. package/es/icons/iconSrc/integrations/TtTelegram.js +21 -0
  120. package/es/icons/iconSrc/integrations/TtTwillio.js +35 -0
  121. package/es/icons/iconSrc/integrations/TtTwitter.js +40 -0
  122. package/es/icons/iconSrc/integrations/TtWechat.js +41 -0
  123. package/es/icons/iconSrc/integrations/index.js +7 -0
  124. package/es/icons/iconSrc/messageStatus/Clock.js +13 -0
  125. package/es/icons/iconSrc/messageStatus/DoubleTick.js +15 -0
  126. package/es/icons/iconSrc/messageStatus/Failed.js +13 -0
  127. package/es/icons/iconSrc/messageStatus/Tick.js +12 -0
  128. package/es/icons/iconSrc/messageStatus/index.js +4 -0
  129. package/es/index.js +10 -1
  130. package/es/{AvatarSpace → unused/AvatarSpace}/AvatarSpace.js +5 -0
  131. package/package.json +15 -9
  132. /package/es/{MessageBoxFooter/css/cssJsLogic.js → IMDateTime/IMDateTime.js} +0 -0
  133. /package/es/{AvatarSpace → unused/AvatarSpace}/css/AvatarSpace.module.css +0 -0
  134. /package/es/{AvatarSpace → unused/AvatarSpace}/css/cssJSLogic.js +0 -0
  135. /package/es/{AvatarSpace → unused/AvatarSpace}/index.js +0 -0
  136. /package/es/{AvatarSpace → unused/AvatarSpace}/props/defaultProps.js +0 -0
  137. /package/es/{AvatarSpace → unused/AvatarSpace}/props/propConstants.js +0 -0
  138. /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 { MessageActionsMore } from '..';
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
- moreCount
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, moreCount);
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("div", null, /*#__PURE__*/React.createElement(Container, {
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)(id, false); // id, isRenderInMorePopup
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", null, renderRow(defaultActions, isShowMoreIcon));
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;
@@ -0,0 +1,3 @@
1
+ .messageActions {
2
+ /*Use this class for message actions customization*/
3
+ }
@@ -0,0 +1,10 @@
1
+ /** ** Methods *** */
2
+ import { compileClassNames } from '@zohodesk/utils';
3
+ export default function cssJSLogic(props, style) {
4
+ const actionsClass = compileClassNames({
5
+ [style.messageActions]: true
6
+ });
7
+ return {
8
+ actionsClass
9
+ };
10
+ }
@@ -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
- moreCount: propConstants.actions.moreCount
5
+ actions: dummyArray,
6
+ customStyle: dummyObject,
7
+ morePopupCustomStyle: dummyObject,
8
+ defaultShowCount: propConstants.actions.defaultShowCount
6
9
  };
7
10
  export default messageActionsDefaultProps;
@@ -1,5 +1,7 @@
1
+ /** ** Constants *** */
2
+ import { actionsDefaultShowCount } from '@zohoim/chat-components-utils/es/constants/messageActionConstants';
1
3
  export default {
2
4
  actions: {
3
- moreCount: 2
5
+ defaultShowCount: actionsDefaultShowCount
4
6
  }
5
7
  };
@@ -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.object),
5
- moreCount: PropTypes.number,
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: style.container
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: "small"
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)(id, true); // id, isRenderInMorePopup
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
- export default {
2
- customStyle: {},
3
- actions: []
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
- export default {
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
- actions: PropTypes.arrayOf(PropTypes.object)
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
@@ -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,3 +1,6 @@
1
+ /** ** Constants *** */
2
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants';
1
3
  export default {
2
- customStyle: {}
4
+ customStyle: dummyObject,
5
+ isFailed: false
3
6
  };
@@ -1,8 +1,10 @@
1
+ /** ** Libraries *** */
1
2
  import PropTypes from 'prop-types';
2
3
  export default {
3
- renderMessageBox: PropTypes.func,
4
- renderMessageBoxFooter: PropTypes.func,
5
- renderMessageBoxHeader: PropTypes.func,
4
+ renderMessageFooter: PropTypes.func,
5
+ renderMessageHeader: PropTypes.func,
6
6
  renderMessageStatus: PropTypes.func,
7
- customStyle: PropTypes.object
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
- return /*#__PURE__*/React.createElement("div", {
26
- className: newStyle.footer
27
- }, renderHandler(renderFooter)());
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 +1,3 @@
1
-
1
+ .footer {
2
+ /*Use this class name for footer customization*/
3
+ }
@@ -0,0 +1,10 @@
1
+ /** ** Methods *** */
2
+ import { compileClassNames } from '@zohodesk/utils';
3
+ export default function cssJSLogic(props, style) {
4
+ const footerClass = compileClassNames({
5
+ [style.footer]: true
6
+ });
7
+ return {
8
+ footerClass
9
+ };
10
+ }
@@ -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';
@@ -1,3 +1,5 @@
1
+ /** ** Constants *** */
2
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants';
1
3
  export default {
2
- customStyle: {}
4
+ customStyle: dummyObject
3
5
  };
@@ -1,3 +1,4 @@
1
+ /** ** Libraries *** */
1
2
  import PropTypes from 'prop-types';
2
3
  export default {
3
4
  renderFooter: PropTypes.func,