@zohoim/chat-components 1.0.9-beta.6 → 1.0.9-beta.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.
Files changed (140) hide show
  1. package/README.md +0 -5
  2. package/es/AttachmentHandler/AttachmentHandler.js +84 -0
  3. package/es/AttachmentHandler/css/AttachmentHandler.module.css +27 -0
  4. package/es/AttachmentHandler/index.js +1 -0
  5. package/es/AttachmentHandler/props/defaultProps.js +10 -0
  6. package/es/AttachmentHandler/props/propTypes.js +17 -0
  7. package/es/AttachmentPreview/AttachmentPreview.js +121 -0
  8. package/es/AttachmentPreview/css/AttachmentPreview.module.css +39 -0
  9. package/es/AttachmentPreview/index.js +1 -0
  10. package/es/AttachmentPreview/props/defaultProps.js +9 -0
  11. package/es/AttachmentPreview/props/propTypes.js +33 -0
  12. package/es/AttachmentPreviewBody/AttachmentPreviewBody.js +97 -0
  13. package/es/AttachmentPreviewBody/css/AttachmentPreviewBody.module.css +74 -0
  14. package/es/AttachmentPreviewBody/index.js +1 -0
  15. package/es/AttachmentPreviewBody/props/defaultProps.js +7 -0
  16. package/es/AttachmentPreviewBody/props/propTypes.js +20 -0
  17. package/es/AttachmentPreviewHeader/AttachmentPreviewHeader.js +84 -0
  18. package/es/AttachmentPreviewHeader/css/AttachmentPreviewHeader.module.css +47 -0
  19. package/es/AttachmentPreviewHeader/index.js +1 -0
  20. package/es/AttachmentPreviewHeader/props/defaultProps.js +7 -0
  21. package/es/AttachmentPreviewHeader/props/propTypes.js +16 -0
  22. package/es/Emoji/Emoji.js +72 -0
  23. package/es/Emoji/css/Emoji.module.css +48 -0
  24. package/es/Emoji/css/cssJSLogic.js +18 -0
  25. package/es/Emoji/index.js +1 -0
  26. package/es/Emoji/props/defaultProps.js +8 -0
  27. package/es/Emoji/props/propTypes.js +16 -0
  28. package/es/EmojiPopup/EmojiPopup.js +116 -0
  29. package/es/EmojiPopup/css/EmojiPopup.module.css +55 -0
  30. package/es/EmojiPopup/index.js +1 -0
  31. package/es/EmojiPopup/props/defaultProps.js +11 -0
  32. package/es/EmojiPopup/props/propTypes.js +21 -0
  33. package/es/Emojis/Emojis.js +79 -0
  34. package/es/Emojis/index.js +1 -0
  35. package/es/Emojis/props/defaultProps.js +10 -0
  36. package/es/Emojis/props/propTypes.js +19 -0
  37. package/es/EmojisEmptyState/EmojisEmptyState.js +50 -0
  38. package/es/EmojisEmptyState/css/EmojisEmptyState.module.css +18 -0
  39. package/es/EmojisEmptyState/index.js +1 -0
  40. package/es/EmojisEmptyState/props/defaultProps.js +9 -0
  41. package/es/EmojisEmptyState/props/propTypes.js +8 -0
  42. package/es/EmojisFooter/EmojisFooter.js +71 -0
  43. package/es/EmojisFooter/css/EmojisFooter.module.css +40 -0
  44. package/es/EmojisFooter/index.js +1 -0
  45. package/es/EmojisFooter/props/defaultProps.js +7 -0
  46. package/es/EmojisFooter/props/propTypes.js +12 -0
  47. package/es/EmojisHeader/EmojisHeader.js +65 -0
  48. package/es/EmojisHeader/css/EmojisHeader.module.css +36 -0
  49. package/es/EmojisHeader/index.js +1 -0
  50. package/es/EmojisHeader/props/defaultProps.js +8 -0
  51. package/es/EmojisHeader/props/propTypes.js +13 -0
  52. package/es/EmojisList/EmojisList.js +130 -0
  53. package/es/EmojisList/css/EmojisList.module.css +50 -0
  54. package/es/EmojisList/css/cssJSLogic.js +25 -0
  55. package/es/EmojisList/index.js +1 -0
  56. package/es/EmojisList/props/defaultProps.js +10 -0
  57. package/es/EmojisList/props/propTypes.js +20 -0
  58. package/es/Message/Message.js +2 -8
  59. package/es/MessageActions/MessageActions.js +0 -2
  60. package/es/MessageActions/props/propTypes.js +1 -2
  61. package/es/MessageActionsMore/MessageActionsMore.js +3 -5
  62. package/es/MessageActionsMore/props/propTypes.js +5 -3
  63. package/es/MessageActionsWrapper/MessageActionsWrapper.js +4 -7
  64. package/es/MessageActionsWrapper/props/propTypes.js +1 -2
  65. package/es/MessageBubble/css/MessageBubble.module.css +7 -0
  66. package/es/MessageBubble/props/defaultProps.js +1 -2
  67. package/es/MessageBubble/props/propTypes.js +1 -2
  68. package/es/Theme/ThemeAssets.js +2 -2
  69. package/es/Theme/ThemeWrapper.js +18 -7
  70. package/es/Theme/TooltipWrapper.js +1 -1
  71. package/es/Theme/props/defaultProps.js +2 -1
  72. package/es/Theme/props/propTypes.js +2 -1
  73. package/es/Theme/themeVariables/dark/blueTheme.js +18 -1
  74. package/es/Theme/themeVariables/dark/commonColorVariable.js +20 -1
  75. package/es/Theme/themeVariables/dark/greenTheme.js +18 -1
  76. package/es/Theme/themeVariables/dark/orangeTheme.js +18 -1
  77. package/es/Theme/themeVariables/dark/redTheme.js +18 -1
  78. package/es/Theme/themeVariables/dark/yellowTheme.js +18 -1
  79. package/es/Theme/themeVariables/light/blueTheme.js +22 -1
  80. package/es/Theme/themeVariables/light/commonColorVariable.js +19 -0
  81. package/es/Theme/themeVariables/light/greenTheme.js +18 -1
  82. package/es/Theme/themeVariables/light/orangeTheme.js +18 -1
  83. package/es/Theme/themeVariables/light/redTheme.js +18 -1
  84. package/es/Theme/themeVariables/light/yellowTheme.js +18 -1
  85. package/es/Theme/themeVariables/pureDark/blueTheme.js +18 -1
  86. package/es/Theme/themeVariables/pureDark/commonColorVariable.js +20 -1
  87. package/es/Theme/themeVariables/pureDark/greenTheme.js +18 -1
  88. package/es/Theme/themeVariables/pureDark/orangeTheme.js +18 -1
  89. package/es/Theme/themeVariables/pureDark/redTheme.js +18 -1
  90. package/es/Theme/themeVariables/pureDark/yellowTheme.js +18 -1
  91. package/es/Theme/utils/getThemeConfigurations.js +1 -1
  92. package/es/constants/index.js +7 -1
  93. package/es/constants/propConstants/editorPropConstants.js +3 -0
  94. package/es/constants/propConstants/popupPropConstants.js +2 -0
  95. package/es/im/IMAttachmentHandler/IMAttachmentHandler.js +50 -0
  96. package/es/im/IMAttachmentHandler/index.js +1 -0
  97. package/es/im/IMAttachmentHandler/props/defaultProps.js +10 -0
  98. package/es/im/IMAttachmentHandler/props/propTypes.js +28 -0
  99. package/es/im/ReplyComposer/ReplyComposer.js +153 -0
  100. package/es/im/ReplyComposer/css/ReplyComposer.module.css +10 -0
  101. package/es/im/ReplyComposer/css/cssJSLogic.js +13 -0
  102. package/es/im/ReplyComposer/index.js +1 -0
  103. package/es/im/ReplyComposer/props/defaultProps.js +7 -0
  104. package/es/im/ReplyComposer/props/propTypes.js +60 -0
  105. package/es/im/ReplyComposerFooter/ReplyComposerFooter.js +41 -0
  106. package/es/im/ReplyComposerFooter/css/ReplyComposerFooter.module.css +10 -0
  107. package/es/im/ReplyComposerFooter/index.js +1 -0
  108. package/es/im/ReplyComposerFooter/props/defaultProps.js +8 -0
  109. package/es/im/ReplyComposerFooter/props/propTypes.js +17 -0
  110. package/es/im/ReplyEditor/ReplyEditor.js +103 -0
  111. package/es/im/ReplyEditor/css/ReplyEditor.module.css +48 -0
  112. package/es/im/ReplyEditor/css/cssJSLogic.js +10 -0
  113. package/es/im/ReplyEditor/index.js +1 -0
  114. package/es/im/ReplyEditor/props/defaultProps.js +8 -0
  115. package/es/im/ReplyEditor/props/propTypes.js +27 -0
  116. package/es/im/ReplyEditorExtensions/ReplyEditorExtensions.js +149 -0
  117. package/es/im/ReplyEditorExtensions/css/ReplyEditorExtensions.module.css +5 -0
  118. package/es/im/ReplyEditorExtensions/index.js +1 -0
  119. package/es/im/ReplyEditorExtensions/props/defaultProps.js +6 -0
  120. package/es/im/ReplyEditorExtensions/props/propTypes.js +16 -0
  121. package/es/im/ReplyEditorSuggestions/ReplyEditorSuggestions.js +93 -0
  122. package/es/im/ReplyEditorSuggestions/css/ReplyEditorSuggestions.module.css +8 -0
  123. package/es/im/ReplyEditorSuggestions/index.js +1 -0
  124. package/es/im/ReplyEditorSuggestions/props/defaultProps.js +6 -0
  125. package/es/im/ReplyEditorSuggestions/props/propTypes.js +21 -0
  126. package/es/im/ReplyEditorSuggestionsPopup/ReplyEditorSuggestionsPopup.js +91 -0
  127. package/es/im/ReplyEditorSuggestionsPopup/css/ReplyEditorSuggestionsPopup.module.css +7 -0
  128. package/es/im/ReplyEditorSuggestionsPopup/index.js +1 -0
  129. package/es/im/ReplyEditorSuggestionsPopup/props/defaultProps.js +10 -0
  130. package/es/im/ReplyEditorSuggestionsPopup/props/propTypes.js +21 -0
  131. package/es/im/index.js +8 -1
  132. package/es/index.js +13 -2
  133. package/es/rte/Editor/Editor.js +80 -0
  134. package/es/rte/Editor/css/Editor.module.css +17 -0
  135. package/es/rte/Editor/index.js +1 -0
  136. package/es/rte/Editor/props/defaultProps.js +21 -0
  137. package/es/rte/Editor/props/propTypes.js +52 -0
  138. package/es/rte/index.js +1 -0
  139. package/package.json +7 -7
  140. package/es/Theme/constants/index.js +0 -41
@@ -0,0 +1,71 @@
1
+ /* eslint-disable max-len */
2
+
3
+ /** ** Libraries *** */
4
+ import React, { useMemo } from 'react';
5
+ /** ** Components *** */
6
+
7
+ import { Container, Box } from '@zohodesk/components/es/Layout';
8
+ import Emoji from "../Emoji/Emoji";
9
+ /** ** Hooks *** */
10
+
11
+ import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
12
+ /** ** Constants *** */
13
+
14
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
15
+ import emojisFooterDefaultProps from "./props/defaultProps";
16
+ import emojisFooterPropTypes from "./props/propTypes";
17
+ /** ** Styles *** */
18
+
19
+ import style from "./css/EmojisFooter.module.css";
20
+
21
+ const capitalize = function () {
22
+ let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
23
+ return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
24
+ };
25
+
26
+ export default function EmojisFooter(props) {
27
+ const {
28
+ customStyle,
29
+ customProps,
30
+ emojisList = dummyObject,
31
+ onSelect,
32
+ selectedTab
33
+ } = props;
34
+ const {
35
+ emojiProps = dummyObject
36
+ } = customProps || dummyObject;
37
+ /* External customization */
38
+
39
+ const newStyle = useMergeStyle(style, customStyle);
40
+ const emojiCustomStyle = useMemo(() => ({
41
+ emoji: newStyle.emoji
42
+ }), [newStyle.emoji]);
43
+ return /*#__PURE__*/React.createElement(Container, {
44
+ alignBox: "row",
45
+ className: newStyle.footerTab,
46
+ isCover: false
47
+ }, Object.keys(emojisList).map(groupName => {
48
+ const emojis = emojisList[groupName];
49
+ const emojiName = Object.keys(emojis)[0];
50
+ const emoji = emojis[emojiName];
51
+ const id = `emoji_${emojiName}`;
52
+ return /*#__PURE__*/React.createElement(Box, {
53
+ key: id,
54
+ className: newStyle.tabIcon,
55
+ flexible: true
56
+ }, /*#__PURE__*/React.createElement(Emoji, {
57
+ customStyle: emojiCustomStyle,
58
+ customTitle: capitalize(groupName),
59
+ emoji: emoji,
60
+ emojiName: emojiName,
61
+ id: groupName,
62
+ onSelect: onSelect,
63
+ ...emojiProps
64
+ }), selectedTab === groupName ? /*#__PURE__*/React.createElement("span", {
65
+ className: newStyle.tabLine
66
+ }) : null);
67
+ }));
68
+ }
69
+ EmojisFooter.propTypes = emojisFooterPropTypes;
70
+ EmojisFooter.defaultProps = emojisFooterDefaultProps;
71
+ EmojisFooter.displayName = 'EmojisFooter';
@@ -0,0 +1,40 @@
1
+ .footerTab {
2
+ position: relative;
3
+ border-top: 1px solid var(--imlib_chat_components_emojiFooter_border_color);
4
+ }
5
+
6
+ .tabIcon {
7
+ /* padding: var(--zd_size10) var(--zd_size16); */
8
+ position: relative;
9
+ height: var(--zd_size35) ;
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: center;
13
+ text-align: center;
14
+ padding: 1% ;
15
+ }
16
+
17
+ .tabLine {
18
+ display: inline-block;
19
+ position: absolute;
20
+ top: 0 ;
21
+ height: var(--zd_size2) ;
22
+ transition: 0.3s ease;
23
+ width: 100% ;
24
+ background-color: var(--imlib_chat_components_emojiFooter_tabLine);
25
+ }
26
+
27
+ [dir=ltr] .tabLine {
28
+ left: 0 ;
29
+ }
30
+
31
+ [dir=rtl] .tabLine {
32
+ right: 0 ;
33
+ }
34
+
35
+ .emoji {
36
+ width: auto ;
37
+ height: auto ;
38
+ margin: 0 ;
39
+ padding: 8% ;
40
+ }
@@ -0,0 +1 @@
1
+ export { default as EmojisFooter } from "./EmojisFooter";
@@ -0,0 +1,7 @@
1
+ /** ** Constants *** */
2
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
3
+ const emojisFooterDefaultProps = {
4
+ customStyle: dummyObject,
5
+ customProps: dummyObject
6
+ };
7
+ export default emojisFooterDefaultProps;
@@ -0,0 +1,12 @@
1
+ /** ** Libraries *** */
2
+ import PropTypes from 'prop-types';
3
+ const emojisFooterPropTypes = {
4
+ customStyle: PropTypes.object,
5
+ customProps: PropTypes.shape({
6
+ emojiProps: PropTypes.object
7
+ }),
8
+ emojisList: PropTypes.object.isRequired,
9
+ onSelect: PropTypes.func,
10
+ selectedTab: PropTypes.string
11
+ };
12
+ export default emojisFooterPropTypes;
@@ -0,0 +1,65 @@
1
+ /** ** Libraries *** */
2
+ import React from 'react';
3
+ /** ** Components *** */
4
+
5
+ import { Container, Box } from '@zohodesk/components/es/Layout';
6
+ import Icon from '@zohodesk/icons/es/Icon';
7
+ import TextBox from '@zohodesk/components/es/TextBox/TextBox';
8
+ /** ** Hooks *** */
9
+
10
+ import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
11
+ /** ** Constants *** */
12
+
13
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
14
+ import emojisHeaderDefaultProps from "./props/defaultProps";
15
+ import emojisHeaderPropTypes from "./props/propTypes";
16
+ /** ** Styles *** */
17
+
18
+ import style from "./css/EmojisHeader.module.css";
19
+ export default function EmojisHeader(props) {
20
+ const {
21
+ customStyle,
22
+ customProps = dummyObject,
23
+ searchString,
24
+ getRef,
25
+ onChange,
26
+ searchPlaceHolder
27
+ } = props;
28
+ const {
29
+ textBoxProps = dummyObject
30
+ } = customProps;
31
+ /* External customization */
32
+
33
+ const newStyle = useMergeStyle(style, customStyle);
34
+ return /*#__PURE__*/React.createElement(Box, {
35
+ className: newStyle.container
36
+ }, /*#__PURE__*/React.createElement(Container, {
37
+ align: "vertical",
38
+ alignBox: "row",
39
+ className: newStyle.emojisSearch
40
+ }, /*#__PURE__*/React.createElement(Box, {
41
+ className: newStyle.searchIcon
42
+ }, /*#__PURE__*/React.createElement(Icon, {
43
+ name: "ZD-search",
44
+ size: "13"
45
+ })), /*#__PURE__*/React.createElement(Box, {
46
+ flexible: true
47
+ }, /*#__PURE__*/React.createElement(TextBox, {
48
+ customClass: newStyle.searchInput,
49
+ inputRef: getRef,
50
+ isDisabled: false,
51
+ isReadOnly: false,
52
+ name: "emojiSearch",
53
+ needBorder: false,
54
+ onChange: onChange,
55
+ placeHolder: searchPlaceHolder,
56
+ size: "medium",
57
+ type: "text",
58
+ value: searchString,
59
+ variant: "default",
60
+ ...textBoxProps
61
+ }))));
62
+ }
63
+ EmojisHeader.propTypes = emojisHeaderPropTypes;
64
+ EmojisHeader.defaultProps = emojisHeaderDefaultProps;
65
+ EmojisHeader.displayName = 'EmojisHeader';
@@ -0,0 +1,36 @@
1
+ .container {
2
+ padding: var(--zd_size10) ;
3
+ border-bottom: 1px solid
4
+ var(--imlib_chat_components_emojisHeader_border_color);
5
+ }
6
+
7
+ .emojisSearch {
8
+ position: relative;
9
+ background-color: var(--imlib_chat_components_emojisHeader_bg_color);
10
+ }
11
+
12
+ .searchInput {
13
+ box-sizing: border-box;
14
+ min-height: var(--zd_size38) ;
15
+ outline: 0;
16
+ }
17
+
18
+ [dir=ltr] .searchInput {
19
+ padding-left: var(--zd_size31) ;
20
+ }
21
+
22
+ [dir=rtl] .searchInput {
23
+ padding-right: var(--zd_size31) ;
24
+ }
25
+
26
+ .searchIcon {
27
+ position: absolute;
28
+ }
29
+
30
+ [dir=ltr] .searchIcon {
31
+ left: var(--zd_size10) ;
32
+ }
33
+
34
+ [dir=rtl] .searchIcon {
35
+ right: var(--zd_size10) ;
36
+ }
@@ -0,0 +1 @@
1
+ export { default as EmojisHeader } from "./EmojisHeader";
@@ -0,0 +1,8 @@
1
+ /** ** Constants *** */
2
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
3
+ const emojisHeaderDefaultProps = {
4
+ customStyle: dummyObject,
5
+ customProps: dummyObject,
6
+ searchPlaceHolder: 'Search...'
7
+ };
8
+ export default emojisHeaderDefaultProps;
@@ -0,0 +1,13 @@
1
+ /** ** Libraries *** */
2
+ import PropTypes from 'prop-types';
3
+ const emojisHeaderPropTypes = {
4
+ customStyle: PropTypes.object,
5
+ customProps: PropTypes.shape({
6
+ textBoxProps: PropTypes.object
7
+ }),
8
+ searchString: PropTypes.string,
9
+ getRef: PropTypes.func,
10
+ onChange: PropTypes.func,
11
+ searchPlaceHolder: PropTypes.string
12
+ };
13
+ export default emojisHeaderPropTypes;
@@ -0,0 +1,130 @@
1
+ /* eslint-disable max-len */
2
+
3
+ /** ** Libraries *** */
4
+ import React, { useCallback } from 'react';
5
+ /** ** Components *** */
6
+
7
+ import Emoji from "../Emoji/Emoji";
8
+ import EmojisEmptyState from "../EmojisEmptyState/EmojisEmptyState";
9
+ /** ** Hooks *** */
10
+
11
+ import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
12
+ import useEmojisList from '@zohoim/chat-components-hooks/es/EmojisList/useEmojisList';
13
+ /** ** Constants *** */
14
+
15
+ import emojisListDefaultProps from "./props/defaultProps";
16
+ import emojisListPropTypes from "./props/propTypes";
17
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
18
+ /** ** Methods *** */
19
+
20
+ import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
21
+ import cssJSLogic from "./css/cssJSLogic";
22
+ /** ** Styles *** */
23
+
24
+ import style from "./css/EmojisList.module.css";
25
+ export default function EmojisList(props) {
26
+ const {
27
+ customStyle,
28
+ customProps,
29
+ searchString,
30
+ isShowGroupBasedList,
31
+ onChangeGroup,
32
+ getMethods,
33
+ onSelect,
34
+ selectedGroup,
35
+ rowType,
36
+ emojisList: propsEmojisList,
37
+ renderEmpty,
38
+ isShowOnlyContent
39
+ } = props;
40
+ const {
41
+ emojiProps = dummyObject,
42
+ emojisEmptyStateProps = dummyObject
43
+ } = customProps;
44
+ const {
45
+ emojisList,
46
+ setGroupRefs,
47
+ setContainerRef: listContainerRef,
48
+ isAllEmpty,
49
+ isGroupEmpty,
50
+ isRenderEmptyState,
51
+ isRenderElement
52
+ } = useEmojisList({
53
+ emojisList: propsEmojisList,
54
+ searchString,
55
+ isShowGroupBasedList,
56
+ onChangeGroup,
57
+ getMethods,
58
+ selectedGroup,
59
+ isShowOnlyContent
60
+ });
61
+ /* External customization */
62
+
63
+ const newStyle = useMergeStyle(style, customStyle);
64
+ /* CSS classnames added based on logic */
65
+
66
+ const {
67
+ emojisListClass,
68
+ groupClass
69
+ } = cssJSLogic({
70
+ rowType,
71
+ isShowGroupBasedList,
72
+ isShowOnlyContent,
73
+ isEmpty: isAllEmpty
74
+ }, newStyle);
75
+ const renderGroup = useCallback(_ref => {
76
+ let {
77
+ groupName,
78
+ emojis
79
+ } = _ref;
80
+ const isEmptyGroup = isGroupEmpty[groupName];
81
+ return !isEmptyGroup ? /*#__PURE__*/React.createElement("div", {
82
+ key: groupName,
83
+ ref: el => {
84
+ setGroupRefs(el, groupName);
85
+ },
86
+ className: groupClass
87
+ }, isShowGroupBasedList ? /*#__PURE__*/React.createElement("div", {
88
+ className: newStyle.groupName
89
+ }, groupName) : null, Object.keys(emojis).map(emojiName => {
90
+ const emoji = emojis[emojiName];
91
+ const id = `emoji_${emojiName}`;
92
+ return /*#__PURE__*/React.createElement(Emoji, {
93
+ key: id,
94
+ emoji: emoji,
95
+ emojiName: emojiName,
96
+ onSelect: onSelect,
97
+ ...emojiProps
98
+ });
99
+ })) : null;
100
+ }, [emojiProps, isGroupEmpty, groupClass, isShowGroupBasedList, newStyle.groupName, onSelect, setGroupRefs]);
101
+ const renderDefaultEmptyState = useCallback(() => /*#__PURE__*/React.createElement(EmojisEmptyState, { ...emojisEmptyStateProps
102
+ }), [emojisEmptyStateProps]);
103
+ const renderEmptyState = useCallback(() => {
104
+ /* Render EmptyState */
105
+ if (isRenderEmptyState) {
106
+ const emptyState = renderHandler(renderEmpty || renderDefaultEmptyState)();
107
+
108
+ if (emptyState) {
109
+ return emptyState;
110
+ }
111
+
112
+ return null;
113
+ }
114
+
115
+ return null;
116
+ }, [renderEmpty, renderDefaultEmptyState, isRenderEmptyState]);
117
+ return /*#__PURE__*/React.createElement(React.Fragment, null, isRenderElement ? /*#__PURE__*/React.createElement("div", {
118
+ ref: listContainerRef,
119
+ className: emojisListClass
120
+ }, !isAllEmpty ? Object.keys(emojisList).map(groupName => {
121
+ const emojis = emojisList[groupName];
122
+ return renderGroup({
123
+ groupName,
124
+ emojis
125
+ });
126
+ }) : renderEmptyState()) : null);
127
+ }
128
+ EmojisList.propTypes = emojisListPropTypes;
129
+ EmojisList.defaultProps = emojisListDefaultProps;
130
+ EmojisList.displayName = 'EmojisList';
@@ -0,0 +1,50 @@
1
+ .varClass {
2
+ --emoji-groupName-size: var(--zd_font_size13);
3
+ --emoji-singleList-size: var(--zd_size32);
4
+ --emoji-multipleList-size: var(--zd_size300);
5
+ }
6
+
7
+ .emojisList {
8
+ composes: varClass;
9
+ transition: 0.2s ease;
10
+ flex-direction: row;
11
+ flex-shrink: 0;
12
+ width: 100% ;
13
+ word-wrap: break-word;
14
+ font-size: 0 ;
15
+ }
16
+
17
+ .emojisListHide {
18
+ display: none;
19
+ }
20
+
21
+ .emojisListSingle {
22
+ height: var(--emoji-singleList-size);
23
+ white-space: nowrap;
24
+ overflow-x: auto;
25
+ }
26
+
27
+ .emojisListMultiple {
28
+ height: var(--emoji-multipleList-size);
29
+ overflow-y: auto;
30
+ }
31
+
32
+ .groupName {
33
+ width: 100% ;
34
+ font-size: var(--emoji-groupName-size);
35
+ text-transform: capitalize;
36
+ color: var(--imlib_chat_components_emojiPopup_titleColor);
37
+ padding: var(--zd_size8) var(--zd_size10) ;
38
+ margin-bottom: var(--zd_size5) ;
39
+ }
40
+
41
+ .groupContainer {
42
+ font-size: 0 ;
43
+ }
44
+ .groupSeperate {
45
+ display: inline-block;
46
+ }
47
+
48
+ .groupAll {
49
+ display: inline;
50
+ }
@@ -0,0 +1,25 @@
1
+ /** ** Methods *** */
2
+ import compileClassNames from '@zohodesk/utils/es/compileClassNames';
3
+ export default function cssJSLogic(props, style) {
4
+ const {
5
+ rowType,
6
+ isShowGroupBasedList,
7
+ isShowOnlyContent,
8
+ isEmpty
9
+ } = props;
10
+ const emojisListClass = compileClassNames({
11
+ [style.emojisList]: true,
12
+ [style.emojisListSingle]: rowType === 'single',
13
+ [style.emojisListMultiple]: rowType === 'multiple',
14
+ [style.emojisListHide]: isShowOnlyContent ? isEmpty : false
15
+ });
16
+ const groupClass = compileClassNames({
17
+ [style.groupContainer]: true,
18
+ [style.groupSeperate]: !!isShowGroupBasedList,
19
+ [style.groupAll]: !isShowGroupBasedList
20
+ });
21
+ return {
22
+ emojisListClass,
23
+ groupClass
24
+ };
25
+ }
@@ -0,0 +1 @@
1
+ export { default as EmojisList } from "./EmojisList";
@@ -0,0 +1,10 @@
1
+ /** ** Constants *** */
2
+ import { dummyObject } from '@zohoim/chat-components-utils/es/constants';
3
+ const emojisListDefaultProps = {
4
+ customStyle: dummyObject,
5
+ customProps: dummyObject,
6
+ rowType: 'multiple',
7
+ isShowGroupBasedList: true,
8
+ isShowOnlyContent: false
9
+ };
10
+ export default emojisListDefaultProps;
@@ -0,0 +1,20 @@
1
+ /** ** Libraries *** */
2
+ import PropTypes from 'prop-types';
3
+ const emojisListPropTypes = {
4
+ emojisList: PropTypes.object.isRequired,
5
+ customProps: PropTypes.shape({
6
+ emojiProps: PropTypes.object,
7
+ emojisEmptyStateProps: PropTypes.object
8
+ }),
9
+ customStyle: PropTypes.object,
10
+ getMethods: PropTypes.func,
11
+ isShowGroupBasedList: PropTypes.bool,
12
+ isShowOnlyContent: PropTypes.bool,
13
+ onChangeGroup: PropTypes.func,
14
+ onSelect: PropTypes.func,
15
+ renderEmpty: PropTypes.func,
16
+ rowType: PropTypes.oneOf(['single', 'multiple']),
17
+ searchString: PropTypes.string,
18
+ selectedGroup: PropTypes.string
19
+ };
20
+ export default emojisListPropTypes;
@@ -1,5 +1,5 @@
1
1
  /** ** Libraries *** */
2
- import React, { useState, useCallback } from 'react';
2
+ import React, { useCallback } from 'react';
3
3
  /** ** Constants *** */
4
4
 
5
5
  import messageDefaultProps from "./props/defaultProps";
@@ -35,10 +35,6 @@ export default function Message(props) {
35
35
  renderContent,
36
36
  customProps
37
37
  } = props;
38
- const [retainMessageActions, _setRetainMessageActions] = useState(false);
39
- const setRetainMessageActions = useCallback(retain => {
40
- _setRetainMessageActions(retain);
41
- }, []);
42
38
  const {
43
39
  messageBubbleProps = dummyObject,
44
40
  messageOwnerProps = dummyObject,
@@ -115,8 +111,7 @@ export default function Message(props) {
115
111
  actions,
116
112
  onSelect: onSelectAction,
117
113
  renderSecondaryActions,
118
- onMouseEnter: onMouseEnterAction,
119
- setRetainMessageActions
114
+ onMouseEnter: onMouseEnterAction
120
115
  };
121
116
  return /*#__PURE__*/React.createElement(MessageActions, { ...props,
122
117
  ...messageActionsProps
@@ -130,7 +125,6 @@ export default function Message(props) {
130
125
  renderMessageActions: handleRenderMessageActions,
131
126
  renderMessageBox: handleRenderMessageBox,
132
127
  renderMessageOwner: handleRenderMessageOwner,
133
- retainMessageActions: retainMessageActions,
134
128
  ...messageBubbleProps
135
129
  });
136
130
  }
@@ -26,7 +26,6 @@ export default function MessageActions(props) {
26
26
  defaultShowCount,
27
27
  onSelect,
28
28
  onMouseEnter,
29
- setRetainMessageActions,
30
29
  renderSecondaryActions,
31
30
  customStyle,
32
31
  customProps
@@ -113,7 +112,6 @@ export default function MessageActions(props) {
113
112
  actions: allActions,
114
113
  defaultShowCount: defaultShowCount,
115
114
  renderMoreIcon: renderMore,
116
- setRetainMessageActions: setRetainMessageActions,
117
115
  ...messageActionsWrapperProps
118
116
  }), secondaryActions ? /*#__PURE__*/React.createElement("div", {
119
117
  className: newStyle.secondaryActions
@@ -20,7 +20,6 @@ const messageActionsPropTypes = {
20
20
  }),
21
21
  customStyle: PropTypes.object,
22
22
  defaultShowCount: PropTypes.number,
23
- renderSecondaryActions: PropTypes.func,
24
- setRetainMessageActions: PropTypes.func
23
+ renderSecondaryActions: PropTypes.func
25
24
  };
26
25
  export default messageActionsPropTypes;
@@ -2,8 +2,8 @@
2
2
  import React, { useCallback, useMemo } from 'react';
3
3
  /** ** Components *** */
4
4
 
5
- import Popup from '@zohodesk/components/lib/Popup/Popup';
6
- import DropBox from '@zohodesk/components/lib/DropBox/DropBox';
5
+ import Popup from '@zohodesk/components/es/Popup/Popup';
6
+ import DropBox from '@zohodesk/components/es/DropBox/DropBox';
7
7
  /** ** Constants *** */
8
8
 
9
9
  import messageActionsMoreDefaultProps from "./props/defaultProps";
@@ -25,7 +25,6 @@ function MessageActionsMoreComp(props) {
25
25
  actions,
26
26
  renderMoreIcon,
27
27
  customStyle,
28
- setRetainMessageActions,
29
28
  popupSize,
30
29
  defaultPopupPosition,
31
30
 
@@ -67,10 +66,9 @@ function MessageActionsMoreComp(props) {
67
66
  id,
68
67
  isShowInMore: true,
69
68
  action,
70
- setRetainMessageActions,
71
69
  closePopup: closePopupOnly
72
70
  }); // id, isRenderInMorePopup
73
- }), [actions, closePopupOnly, setRetainMessageActions]);
71
+ }), [actions, closePopupOnly]);
74
72
  const isRenderPopup = !!(moreIcon && isPopupOpen);
75
73
  return /*#__PURE__*/React.createElement("span", {
76
74
  className: newStyle.morePopupContainer
@@ -1,14 +1,16 @@
1
1
  /** ** Libraries *** */
2
2
  import PropTypes from 'prop-types';
3
+ /** ** Constants *** */
4
+
5
+ import { popupPosition, popupSize } from "../../constants/propConstants/popupPropConstants";
3
6
  const messageActionsMorePropTypes = {
4
7
  actions: PropTypes.arrayOf(PropTypes.shape({
5
8
  id: PropTypes.string.isRequired,
6
9
  renderFunction: PropTypes.func
7
10
  })).isRequired,
8
11
  renderMoreIcon: PropTypes.func.isRequired,
9
- setRetainMessageActions: PropTypes.func,
10
12
  customStyle: PropTypes.object,
11
- popupSize: PropTypes.oneOf(['mini', 'xmini', 'xsmall', 'small', 'medium', 'large', 'mlarge', 'xlarge', 'xxlarge', 'default']),
12
- defaultPopupPosition: PropTypes.oneOf([['bottomCenter', 'bottomLeftToRight', 'bottomCenterToRight', 'bottomRightToLeft', 'bottomCenterToLeft', 'topCenter', 'topLeftToRight', 'topCenterToRight', 'topRightToLeft', 'topCenterToLeft', 'rightTopToBottom', 'rightCenterToBottom', 'rightCenter', 'rightBottomToTop', 'rightCenterToTop', 'leftTopToBottom', 'leftCenterToBottom', 'leftCenter', 'leftBottomToTop', 'leftCenterToTop', 'bottomRight', 'bottomLeft', 'topRight', 'topLeft', 'rightBottom', 'rightTop', 'leftBottom', 'leftTop']])
13
+ popupSize: PropTypes.oneOf(popupSize),
14
+ defaultPopupPosition: PropTypes.oneOf(popupPosition)
13
15
  };
14
16
  export default messageActionsMorePropTypes;
@@ -2,7 +2,7 @@
2
2
  import React, { useCallback } from 'react';
3
3
  /** ** Components *** */
4
4
 
5
- import { Container } from '@zohodesk/components/lib/Layout';
5
+ import { Container } from '@zohodesk/components/es/Layout';
6
6
  import MessageActionsMore from "../MessageActionsMore/MessageActionsMore";
7
7
  /** ** Hooks *** */
8
8
 
@@ -25,8 +25,7 @@ export default function MessageActionsWrapper(props) {
25
25
  renderMoreIcon,
26
26
  defaultShowCount,
27
27
  customStyle,
28
- customProps,
29
- setRetainMessageActions
28
+ customProps
30
29
  } = props;
31
30
  const {
32
31
  messageActionsMoreProps = dummyObject
@@ -47,16 +46,14 @@ export default function MessageActionsWrapper(props) {
47
46
  return renderHandler(renderFunction)({
48
47
  id,
49
48
  isShowInMore: false,
50
- setRetainMessageActions,
51
49
  action
52
50
  }); // id, isRenderInMorePopup
53
- }), [defaultActions, setRetainMessageActions]);
51
+ }), [defaultActions]);
54
52
  const renderMoreActions = useCallback(() => /*#__PURE__*/React.createElement(MessageActionsMore, {
55
53
  actions: moreActions,
56
54
  renderMoreIcon: renderMoreIcon,
57
- setRetainMessageActions: setRetainMessageActions,
58
55
  ...messageActionsMoreProps
59
- }), [moreActions, renderMoreIcon, messageActionsMoreProps, setRetainMessageActions]);
56
+ }), [moreActions, renderMoreIcon, messageActionsMoreProps]);
60
57
  const renderRow = useCallback(() => /*#__PURE__*/React.createElement(Container, {
61
58
  alignBox: "row",
62
59
  className: newStyle.row,
@@ -10,7 +10,6 @@ const messageActionsWrapperPropTypes = {
10
10
  }),
11
11
  customStyle: PropTypes.object,
12
12
  defaultShowCount: PropTypes.number,
13
- renderMoreIcon: PropTypes.func,
14
- setRetainMessageActions: PropTypes.func
13
+ renderMoreIcon: PropTypes.func
15
14
  };
16
15
  export default messageActionsWrapperPropTypes;