stream-chat-react 11.0.0-rc.1 → 11.0.0-rc.2
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/dist/browser.full-bundle.js +9308 -12495
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +5 -5
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/AutoCompleteTextarea/Item.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Item.js +4 -3
- package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/List.js +10 -8
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.js +34 -24
- package/dist/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar/Avatar.js +1 -1
- package/dist/components/Channel/Channel.d.ts +4 -11
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +13 -28
- package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +8 -8
- package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts.map +1 -1
- package/dist/components/ChatAutoComplete/ChatAutoComplete.js +24 -14
- package/dist/components/DateSeparator/DateSeparator.js +1 -1
- package/dist/components/Emojis/EmojiPicker.d.ts +10 -0
- package/dist/components/Emojis/EmojiPicker.d.ts.map +1 -0
- package/dist/components/Emojis/EmojiPicker.js +57 -0
- package/dist/components/Emojis/index.cjs.js +89 -0
- package/dist/components/Emojis/index.d.ts +2 -0
- package/dist/components/Emojis/index.d.ts.map +1 -0
- package/dist/components/Emojis/index.js +1 -0
- package/dist/components/EventComponent/EventComponent.js +1 -1
- package/dist/components/Message/FixedHeightMessage.js +1 -1
- package/dist/components/Message/MessageText.js +2 -2
- package/dist/components/Message/index.d.ts +1 -0
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +1 -0
- package/dist/components/Message/renderText/Anchor.d.ts +4 -0
- package/dist/components/Message/renderText/Anchor.d.ts.map +1 -0
- package/dist/components/Message/renderText/Anchor.js +10 -0
- package/dist/components/Message/renderText/Emoji.d.ts +3 -0
- package/dist/components/Message/renderText/Emoji.d.ts.map +1 -0
- package/dist/components/Message/renderText/Emoji.js +5 -0
- package/dist/components/Message/renderText/Mention.d.ts +18 -0
- package/dist/components/Message/renderText/Mention.d.ts.map +1 -0
- package/dist/components/Message/renderText/Mention.js +5 -0
- package/dist/components/Message/renderText/index.d.ts +5 -0
- package/dist/components/Message/renderText/index.d.ts.map +1 -0
- package/dist/components/Message/renderText/index.js +3 -0
- package/dist/components/Message/renderText/regex.d.ts +5 -0
- package/dist/components/Message/renderText/regex.d.ts.map +1 -0
- package/dist/components/Message/renderText/regex.js +21 -0
- package/dist/components/Message/renderText/rehypePlugins.d.ts +7 -0
- package/dist/components/Message/renderText/rehypePlugins.d.ts.map +1 -0
- package/dist/components/Message/renderText/rehypePlugins.js +60 -0
- package/dist/components/Message/renderText/renderText.d.ts +21 -0
- package/dist/components/Message/renderText/renderText.d.ts.map +1 -0
- package/dist/components/Message/renderText/renderText.js +126 -0
- package/dist/components/Message/types.d.ts +1 -1
- package/dist/components/Message/types.d.ts.map +1 -1
- package/dist/components/Message/utils.d.ts +1 -0
- package/dist/components/Message/utils.d.ts.map +1 -1
- package/dist/components/Message/utils.js +8 -0
- package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +2 -3
- package/dist/components/MessageInput/DefaultTriggerProvider.d.ts.map +1 -1
- package/dist/components/MessageInput/DefaultTriggerProvider.js +1 -1
- package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
- package/dist/components/MessageInput/EditMessageForm.js +4 -7
- package/dist/components/MessageInput/MessageInput.d.ts +17 -5
- package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInput.js +3 -1
- package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputFlat.js +12 -27
- package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputSmall.js +8 -11
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +3 -9
- package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts +2 -2
- package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useEmojiTrigger.js +32 -12
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +1 -19
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputState.js +3 -15
- package/dist/components/MessageInput/hooks/useMessageInputText.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputText.js +1 -2
- package/dist/components/MessageInput/index.d.ts +0 -1
- package/dist/components/MessageInput/index.d.ts.map +1 -1
- package/dist/components/MessageInput/index.js +0 -1
- package/dist/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.js +1 -3
- package/dist/components/MessageList/VirtualizedMessageList.d.ts +36 -6
- package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
- package/dist/components/MessageList/VirtualizedMessageList.js +39 -122
- package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +23 -0
- package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -0
- package/dist/components/MessageList/VirtualizedMessageListComponents.js +70 -0
- package/dist/components/MessageList/hooks/MessageList/index.d.ts +5 -0
- package/dist/components/MessageList/hooks/MessageList/index.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/MessageList/index.js +4 -0
- package/dist/components/MessageList/hooks/{useEnrichedMessages.d.ts → MessageList/useEnrichedMessages.d.ts} +3 -3
- package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/{useEnrichedMessages.js → MessageList/useEnrichedMessages.js} +3 -3
- package/dist/components/MessageList/hooks/{useMessageListElements.d.ts → MessageList/useMessageListElements.d.ts} +4 -4
- package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/{useMessageListElements.js → MessageList/useMessageListElements.js} +9 -9
- package/dist/components/MessageList/hooks/{useMessageListScrollManager.d.ts → MessageList/useMessageListScrollManager.d.ts} +2 -2
- package/dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/{useMessageListScrollManager.js → MessageList/useMessageListScrollManager.js} +1 -1
- package/dist/components/MessageList/hooks/{useScrollLocationLogic.d.ts → MessageList/useScrollLocationLogic.d.ts} +2 -2
- package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts +7 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/index.js +6 -0
- package/dist/components/MessageList/hooks/{useGiphyPreview.d.ts → VirtualizedMessageList/useGiphyPreview.d.ts} +2 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/{useGiphyPreview.js → VirtualizedMessageList/useGiphyPreview.js} +1 -1
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts +10 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js +20 -0
- package/dist/components/MessageList/hooks/{useNewMessageNotification.d.ts → VirtualizedMessageList/useNewMessageNotification.d.ts} +2 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/{usePrependMessagesCount.d.ts → VirtualizedMessageList/usePrependMessagesCount.d.ts} +2 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts +12 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.js +28 -0
- package/dist/components/MessageList/hooks/{useShouldForceScrollToBottom.d.ts → VirtualizedMessageList/useShouldForceScrollToBottom.d.ts} +2 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.d.ts.map +1 -0
- package/dist/components/MessageList/hooks/index.d.ts +7 -7
- package/dist/components/MessageList/hooks/index.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/index.js +7 -7
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts +3 -1
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -1
- package/dist/context/ChannelStateContext.d.ts +1 -1
- package/dist/context/ChatContext.d.ts +1 -1
- package/dist/context/ComponentContext.d.ts +3 -2
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/context/MessageContext.d.ts +1 -1
- package/dist/context/MessageContext.d.ts.map +1 -1
- package/dist/context/MessageInputContext.d.ts +1 -7
- package/dist/context/MessageInputContext.d.ts.map +1 -1
- package/dist/context/index.d.ts +0 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +0 -1
- package/dist/i18n/Streami18n.d.ts +0 -1
- package/dist/i18n/Streami18n.d.ts.map +1 -1
- package/dist/i18n/de.json +0 -1
- package/dist/i18n/en.json +0 -1
- package/dist/i18n/es.json +0 -1
- package/dist/i18n/fr.json +0 -1
- package/dist/i18n/hi.json +0 -1
- package/dist/i18n/it.json +0 -1
- package/dist/i18n/ja.json +0 -1
- package/dist/i18n/ko.json +0 -1
- package/dist/i18n/nl.json +0 -1
- package/dist/i18n/pt.json +0 -1
- package/dist/i18n/ru.json +0 -1
- package/dist/i18n/tr.json +0 -1
- package/dist/icons-0801b1e9.js +3133 -0
- package/dist/index.cjs.js +1470 -4591
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index_UMD.d.ts +7 -0
- package/dist/index_UMD.d.ts.map +1 -0
- package/dist/index_UMD.js +8 -0
- package/dist/utils/generateRandomId.d.ts +6 -0
- package/dist/utils/generateRandomId.d.ts.map +1 -0
- package/dist/utils/generateRandomId.js +5 -0
- package/dist/utils/getWholeChar.d.ts +2 -0
- package/dist/utils/getWholeChar.d.ts.map +1 -0
- package/dist/utils/getWholeChar.js +26 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +35 -8
- package/dist/components/Channel/emojiData.d.ts +0 -15
- package/dist/components/Channel/emojiData.d.ts.map +0 -1
- package/dist/components/Channel/emojiData.js +0 -23
- package/dist/components/MessageInput/EmojiPicker.d.ts +0 -6
- package/dist/components/MessageInput/EmojiPicker.d.ts.map +0 -1
- package/dist/components/MessageInput/EmojiPicker.js +0 -23
- package/dist/components/MessageInput/hooks/useEmojiIndex.d.ts +0 -3
- package/dist/components/MessageInput/hooks/useEmojiIndex.d.ts.map +0 -1
- package/dist/components/MessageInput/hooks/useEmojiIndex.js +0 -13
- package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts +0 -11
- package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts.map +0 -1
- package/dist/components/MessageInput/hooks/useEmojiPicker.js +0 -68
- package/dist/components/MessageList/hooks/useEnrichedMessages.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useGiphyPreview.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useNewMessageNotification.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +0 -1
- package/dist/components/MessageList/hooks/useShouldForceScrollToBottom.d.ts.map +0 -1
- package/dist/context/DefaultEmoji.d.ts +0 -3
- package/dist/context/DefaultEmoji.d.ts.map +0 -1
- package/dist/context/DefaultEmoji.js +0 -3
- package/dist/context/DefaultEmojiPicker.d.ts +0 -3
- package/dist/context/DefaultEmojiPicker.d.ts.map +0 -1
- package/dist/context/DefaultEmojiPicker.js +0 -3
- package/dist/context/EmojiContext.d.ts +0 -48
- package/dist/context/EmojiContext.d.ts.map +0 -1
- package/dist/context/EmojiContext.js +0 -39
- package/dist/index.cjs.js.map +0 -1
- package/dist/stream-emoji.json +0 -1
- package/dist/utils.d.ts +0 -42
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -253
- /package/dist/components/MessageList/hooks/{useScrollLocationLogic.js → MessageList/useScrollLocationLogic.js} +0 -0
- /package/dist/components/MessageList/hooks/{useNewMessageNotification.js → VirtualizedMessageList/useNewMessageNotification.js} +0 -0
- /package/dist/components/MessageList/hooks/{usePrependMessagesCount.js → VirtualizedMessageList/usePrependMessagesCount.js} +0 -0
- /package/dist/components/MessageList/hooks/{useShouldForceScrollToBottom.js → VirtualizedMessageList/useShouldForceScrollToBottom.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/Item.jsx"],"names":[],"mappings":"AAKA,
|
|
1
|
+
{"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/Item.jsx"],"names":[],"mappings":"AAKA,6EAiDG"}
|
|
@@ -4,13 +4,14 @@ import { useChatContext } from '../../context/ChatContext';
|
|
|
4
4
|
export var Item = React.forwardRef(function Item(props, innerRef) {
|
|
5
5
|
var className = props.className, Component = props.component, item = props.item, onClickHandler = props.onClickHandler, onSelectHandler = props.onSelectHandler, selected = props.selected, style = props.style;
|
|
6
6
|
var themeVersion = useChatContext('SuggestionItem').themeVersion;
|
|
7
|
-
var
|
|
7
|
+
var handleSelect = useCallback(function () { return onSelectHandler(item); }, [item, onSelectHandler]);
|
|
8
|
+
var handleClick = useCallback(function (event) { return onClickHandler(event, item); }, [item, onClickHandler]);
|
|
8
9
|
if (themeVersion === '2')
|
|
9
10
|
return (React.createElement("li", { className: clsx(className, { 'str-chat__suggestion-item--selected': selected }), style: style },
|
|
10
|
-
React.createElement("a", { href: '', onClick: onClickHandler, onFocus:
|
|
11
|
+
React.createElement("a", { href: '', onClick: onClickHandler, onFocus: handleSelect, onMouseEnter: handleSelect, ref: innerRef },
|
|
11
12
|
React.createElement(Component, { entity: item, selected: selected }))));
|
|
12
13
|
return (React.createElement("li", { className: clsx('rta__item', className), style: style },
|
|
13
|
-
React.createElement("button", { className: clsx('rta__entity', { 'rta__entity--selected': selected }), onClick:
|
|
14
|
+
React.createElement("button", { className: clsx('rta__entity', { 'rta__entity--selected': selected }), onClick: handleClick, onFocus: handleSelect, onMouseEnter: handleSelect, ref: innerRef },
|
|
14
15
|
React.createElement("div", { tabIndex: -1 },
|
|
15
16
|
React.createElement(Component, { entity: item, selected: selected })))));
|
|
16
17
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/List.jsx"],"names":[],"mappings":"AAUO;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/List.jsx"],"names":[],"mappings":"AAUO;;;;;;;;;;;;;;;;gBA+JN"}
|
|
@@ -3,9 +3,9 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { useComponentContext } from '../../context/ComponentContext';
|
|
5
5
|
import { useChatContext } from '../../context/ChatContext';
|
|
6
|
-
import { escapeRegExp } from '../../utils';
|
|
7
6
|
import { Item } from './Item';
|
|
8
7
|
import { DefaultSuggestionListHeader } from './Header';
|
|
8
|
+
import { escapeRegExp } from '../Message/renderText';
|
|
9
9
|
export var List = function (_a) {
|
|
10
10
|
var className = _a.className, component = _a.component, currentTrigger = _a.currentTrigger, dropdownScroll = _a.dropdownScroll, getSelectedItem = _a.getSelectedItem, getTextToReplace = _a.getTextToReplace, PropHeader = _a.Header, itemClassName = _a.itemClassName, itemStyle = _a.itemStyle, onSelect = _a.onSelect, selectionEnd = _a.selectionEnd, style = _a.style, PropSuggestionItem = _a.SuggestionItem, propValue = _a.value, values = _a.values;
|
|
11
11
|
var _b = useComponentContext('SuggestionList'), AutocompleteSuggestionHeader = _b.AutocompleteSuggestionHeader, AutocompleteSuggestionItem = _b.AutocompleteSuggestionItem;
|
|
@@ -27,6 +27,9 @@ export var List = function (_a) {
|
|
|
27
27
|
}
|
|
28
28
|
return item.key;
|
|
29
29
|
};
|
|
30
|
+
var findItemIndex = useCallback(function (item) {
|
|
31
|
+
return values.findIndex(function (value) { return (value.id ? value.id === item.id : value.name === item.name); });
|
|
32
|
+
}, [values]);
|
|
30
33
|
var modifyText = function (value) {
|
|
31
34
|
if (!value)
|
|
32
35
|
return;
|
|
@@ -34,16 +37,15 @@ export var List = function (_a) {
|
|
|
34
37
|
if (getSelectedItem)
|
|
35
38
|
getSelectedItem(value);
|
|
36
39
|
};
|
|
37
|
-
var handleClick = function (e) {
|
|
40
|
+
var handleClick = useCallback(function (e, item) {
|
|
38
41
|
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
var index = findItemIndex(item);
|
|
43
|
+
modifyText(values[index]);
|
|
44
|
+
}, [modifyText, findItemIndex]);
|
|
41
45
|
var selectItem = useCallback(function (item) {
|
|
42
|
-
var index =
|
|
43
|
-
return value.id ? value.id === item.id : value.name === item.name;
|
|
44
|
-
});
|
|
46
|
+
var index = findItemIndex(item);
|
|
45
47
|
setSelectedItem(index);
|
|
46
|
-
}, [
|
|
48
|
+
}, [findItemIndex]);
|
|
47
49
|
var handleKeyDown = useCallback(function (event) {
|
|
48
50
|
if (event.key === 'ArrowUp') {
|
|
49
51
|
setSelectedItem(function (prevSelected) {
|
|
@@ -45,7 +45,7 @@ export class ReactTextareaAutocomplete extends React.Component<any, any, any> {
|
|
|
45
45
|
_handleKeyDown: (event: any) => void;
|
|
46
46
|
_onEnter: (event: any) => void;
|
|
47
47
|
_onSpace: () => void;
|
|
48
|
-
_replaceWord: () => void
|
|
48
|
+
_replaceWord: () => Promise<void>;
|
|
49
49
|
_onSelect: (newToken: any) => void;
|
|
50
50
|
_getItemOnSelect: (paramTrigger: any) => ((item: any) => any) | null;
|
|
51
51
|
_getTextToReplace: (paramTrigger: any) => ((item: any) => any) | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/Textarea.jsx"],"names":[],"mappings":"AAmBA;IACE;;;;;;;MAOE;IA6WF;;OAEG;IACH;;;aAMC;IApXD,wBA4BC;IAZC;;;;;;;;;;;MAWC;IAIH;;;aAOE;IAGF,2BAOE;IAEF,8CAKE;IAEF,+BAIE;IAEF;;;;;;OAMG;IACH,8CAC6E;IAE7E,qCAUE;IAEF,+BAcE;IAEF,qBAQE;IAEF,
|
|
1
|
+
{"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/Textarea.jsx"],"names":[],"mappings":"AAmBA;IACE;;;;;;;MAOE;IA6WF;;OAEG;IACH;;;aAMC;IApXD,wBA4BC;IAZC;;;;;;;;;;;MAWC;IAIH;;;aAOE;IAGF,2BAOE;IAEF,8CAKE;IAEF,+BAIE;IAEF;;;;;;OAMG;IACH,8CAC6E;IAE7E,qCAUE;IAEF,+BAcE;IAEF,qBAQE;IAEF,kCA6BE;IAEF,mCAqEE;IAEF,qEAuBE;IAEF,sEA2DE;IAEF,uDAQE;IAEF,mCA0CE;IAEF,6CAQE;IAYF;;OAEG;IACH,+BAQE;IAEF;;MA6CE;IAEF,mCAME;IAEF,iCA+EE;IAEF,iCASE;IAGF,yCA0BE;IAEF,6BAAmD;IAEnD,qCAiBE;IAEF;;;;;;;;MAoCE;IAEF,uCAEE;IADA,iBAA0B;IAG5B,oDA2CC;IAED,sBA2EC;IATS,oDAAsB;CAUjC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __assign, __extends, __rest } from "tslib";
|
|
1
|
+
import { __assign, __awaiter, __extends, __generator, __rest } from "tslib";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import Textarea from 'react-textarea-autosize';
|
|
@@ -89,30 +89,40 @@ var ReactTextareaAutocomplete = /** @class */ (function (_super) {
|
|
|
89
89
|
return;
|
|
90
90
|
_this._replaceWord();
|
|
91
91
|
};
|
|
92
|
-
_this._replaceWord = function () {
|
|
93
|
-
var value
|
|
94
|
-
var
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
92
|
+
_this._replaceWord = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
93
|
+
var value, lastWordRegex, match, lastWord, spaces, newWord, textBeforeWord, textAfterCaret, newText;
|
|
94
|
+
var _this = this;
|
|
95
|
+
return __generator(this, function (_a) {
|
|
96
|
+
switch (_a.label) {
|
|
97
|
+
case 0:
|
|
98
|
+
value = this.state.value;
|
|
99
|
+
lastWordRegex = /([^\s]+)(\s*)$/;
|
|
100
|
+
match = lastWordRegex.exec(value.slice(0, this.getCaretPosition()));
|
|
101
|
+
lastWord = match && match[1];
|
|
102
|
+
if (!lastWord)
|
|
103
|
+
return [2 /*return*/];
|
|
104
|
+
spaces = match[2];
|
|
105
|
+
return [4 /*yield*/, this.props.replaceWord(lastWord)];
|
|
106
|
+
case 1:
|
|
107
|
+
newWord = _a.sent();
|
|
108
|
+
if (newWord == null)
|
|
109
|
+
return [2 /*return*/];
|
|
110
|
+
textBeforeWord = value.slice(0, this.getCaretPosition() - match[0].length);
|
|
111
|
+
textAfterCaret = value.slice(this.getCaretPosition(), -1);
|
|
112
|
+
newText = textBeforeWord + newWord + spaces + textAfterCaret;
|
|
113
|
+
this.setState({
|
|
114
|
+
value: newText,
|
|
115
|
+
}, function () {
|
|
116
|
+
// fire onChange event after successful selection
|
|
117
|
+
var e = new CustomEvent('change', { bubbles: true });
|
|
118
|
+
_this.textareaRef.dispatchEvent(e);
|
|
119
|
+
if (_this.props.onChange)
|
|
120
|
+
_this.props.onChange(e);
|
|
121
|
+
});
|
|
122
|
+
return [2 /*return*/];
|
|
123
|
+
}
|
|
114
124
|
});
|
|
115
|
-
};
|
|
125
|
+
}); };
|
|
116
126
|
_this._onSelect = function (newToken) {
|
|
117
127
|
var _a = _this.props, closeCommandsList = _a.closeCommandsList, closeMentionsList = _a.closeMentionsList, onChange = _a.onChange, showCommandsList = _a.showCommandsList, showMentionsList = _a.showMentionsList;
|
|
118
128
|
var _b = _this.state, stateTrigger = _b.currentTrigger, selectionEnd = _b.selectionEnd, textareaValue = _b.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,oBAAY,WAAW,CACrB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC;IACpD,8BAA8B;IAC9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC;IACxD;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,IAAI,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,2IA8DlB,CAAC"}
|
|
@@ -3,8 +3,6 @@ import { Message, MessageResponse, Channel as StreamChannel, StreamChat, Updated
|
|
|
3
3
|
import { OnMentionAction } from './hooks/useMentionsHandlers';
|
|
4
4
|
import { LoadingErrorIndicatorProps } from '../Loading';
|
|
5
5
|
import { ComponentContextValue } from '../../context/ComponentContext';
|
|
6
|
-
import { EmojiContextValue } from '../../context/EmojiContext';
|
|
7
|
-
import type { Data as EmojiMartData } from 'emoji-mart';
|
|
8
6
|
import type { MessageProps } from '../Message/types';
|
|
9
7
|
import type { MessageInputProps } from '../MessageInput/MessageInput';
|
|
10
8
|
import type { CustomTrigger, DefaultStreamChatGenerics, GiphyVersions, ImageAttachmentSizeHandler, SendMessageOptions, UpdateMessageOptions, VideoAttachmentSizeHandler } from '../../types/types';
|
|
@@ -43,14 +41,10 @@ export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGen
|
|
|
43
41
|
dragAndDropWindow?: boolean;
|
|
44
42
|
/** Custom UI component to override default edit message input, defaults to and accepts same props as: [EditMessageForm](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/EditMessageForm.tsx) */
|
|
45
43
|
EditMessageInput?: ComponentContextValue<StreamChatGenerics>['EditMessageInput'];
|
|
46
|
-
/** Custom
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
|
|
50
|
-
/** Custom UI component to override default `NimbleEmojiIndex` from `emoji-mart` */
|
|
51
|
-
EmojiIndex?: EmojiContextValue['EmojiIndex'];
|
|
52
|
-
/** Custom UI component to override default `NimblePicker` from `emoji-mart` */
|
|
53
|
-
EmojiPicker?: EmojiContextValue['EmojiPicker'];
|
|
44
|
+
/** Custom UI component for rendering button with emoji picker in MessageInput */
|
|
45
|
+
EmojiPicker?: ComponentContextValue<StreamChatGenerics>['EmojiPicker'];
|
|
46
|
+
/** Mechanism to be used with autocomplete and text replace features of the `MessageInput` component, see [emoji-mart `SearchIndex`](https://github.com/missive/emoji-mart#%EF%B8%8F%EF%B8%8F-headless-search) */
|
|
47
|
+
emojiSearchIndex?: ComponentContextValue<StreamChatGenerics>['emojiSearchIndex'];
|
|
54
48
|
/** Custom UI component to be shown if no active channel is set, defaults to null and skips rendering the Channel component */
|
|
55
49
|
EmptyPlaceholder?: React.ReactElement;
|
|
56
50
|
/** Custom UI component to be displayed when the `MessageList` is empty, defaults to and accepts same props as: [EmptyStateIndicator](https://github.com/GetStream/stream-chat-react/blob/master/src/components/EmptyStateIndicator/EmptyStateIndicator.tsx) */
|
|
@@ -156,7 +150,6 @@ export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGen
|
|
|
156
150
|
* - [ChannelStateContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_state_context/)
|
|
157
151
|
* - [ChannelActionContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_action_context/)
|
|
158
152
|
* - [ComponentContext](https://getstream.io/chat/docs/sdk/react/contexts/component_context/)
|
|
159
|
-
* - [EmojiContext](https://getstream.io/chat/docs/sdk/react/contexts/emoji_context/)
|
|
160
153
|
* - [TypingContext](https://getstream.io/chat/docs/sdk/react/contexts/typing_context/)
|
|
161
154
|
*/
|
|
162
155
|
export declare const Channel: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger>(props: React.PropsWithChildren<ChannelProps<StreamChatGenerics, V>>) => JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/components/Channel/Channel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,iBAAiB,EAOlB,MAAM,OAAO,CAAC;AAIf,OAAO,EAML,OAAO,EACP,eAAe,EAEf,OAAO,IAAI,aAAa,EACxB,UAAU,EACV,cAAc,EAEf,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/components/Channel/Channel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,6 @@ import { logChatPromiseExecution, } from 'stream-chat';
|
|
|
6
6
|
import { nanoid } from 'nanoid';
|
|
7
7
|
import clsx from 'clsx';
|
|
8
8
|
import { channelReducer, initialState } from './channelState';
|
|
9
|
-
import { commonEmoji, defaultMinimalEmojis, emojiSetDef } from './emojiData';
|
|
10
9
|
import { useCreateChannelStateContext } from './hooks/useCreateChannelStateContext';
|
|
11
10
|
import { useCreateTypingContext } from './hooks/useCreateTypingContext';
|
|
12
11
|
import { useEditMessageHandler } from './hooks/useEditMessageHandler';
|
|
@@ -21,12 +20,10 @@ import { ChannelActionProvider, } from '../../context/ChannelActionContext';
|
|
|
21
20
|
import { ChannelStateProvider, } from '../../context/ChannelStateContext';
|
|
22
21
|
import { ComponentProvider } from '../../context/ComponentContext';
|
|
23
22
|
import { useChatContext } from '../../context/ChatContext';
|
|
24
|
-
import { EmojiProvider } from '../../context/EmojiContext';
|
|
25
23
|
import { useTranslationContext } from '../../context/TranslationContext';
|
|
26
24
|
import { TypingProvider } from '../../context/TypingContext';
|
|
27
25
|
import { DEFAULT_INITIAL_CHANNEL_PAGE_SIZE, DEFAULT_NEXT_CHANNEL_PAGE_SIZE, DEFAULT_THREAD_PAGE_SIZE, } from '../../constants/limits';
|
|
28
26
|
import { hasMoreMessagesProbably, hasNotMoreMessages } from '../MessageList/utils';
|
|
29
|
-
import defaultEmojiData from '../../stream-emoji.json';
|
|
30
27
|
import { makeAddNotifications } from './utils';
|
|
31
28
|
import { getChannel } from '../../utils/getChannel';
|
|
32
29
|
import { useChannelContainerClasses } from './hooks/useChannelContainerClasses';
|
|
@@ -56,26 +53,20 @@ var UnMemoizedChannel = function (props) {
|
|
|
56
53
|
};
|
|
57
54
|
var ChannelInner = function (props) {
|
|
58
55
|
var _a;
|
|
59
|
-
var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, children = props.children, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.dragAndDropWindow, dragAndDropWindow = _b === void 0 ? false : _b,
|
|
60
|
-
var
|
|
56
|
+
var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, children = props.children, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.dragAndDropWindow, dragAndDropWindow = _b === void 0 ? false : _b, enrichURLForPreviewConfig = props.enrichURLForPreviewConfig, _c = props.initializeOnMount, initializeOnMount = _c === void 0 ? true : _c, _d = props.LoadingErrorIndicator, LoadingErrorIndicator = _d === void 0 ? DefaultLoadingErrorIndicator : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? DefaultLoadingIndicator : _e, maxNumberOfFiles = props.maxNumberOfFiles, _f = props.multipleUploads, multipleUploads = _f === void 0 ? true : _f, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover, _g = props.optionalMessageInputProps, optionalMessageInputProps = _g === void 0 ? {} : _g, skipMessageDataMemoization = props.skipMessageDataMemoization;
|
|
57
|
+
var _h = useChatContext('Channel'), client = _h.client, customClasses = _h.customClasses, latestMessageDatesByChannels = _h.latestMessageDatesByChannels, mutes = _h.mutes, theme = _h.theme;
|
|
61
58
|
var t = useTranslationContext('Channel').t;
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
var
|
|
65
|
-
var
|
|
59
|
+
var _j = useChannelContainerClasses({ customClasses: customClasses }), channelClass = _j.channelClass, chatClass = _j.chatClass, chatContainerClass = _j.chatContainerClass, windowsEmojiClass = _j.windowsEmojiClass;
|
|
60
|
+
var _k = useState(channel.getConfig()), channelConfig = _k[0], setChannelConfig = _k[1];
|
|
61
|
+
var _l = useState([]), notifications = _l[0], setNotifications = _l[1];
|
|
62
|
+
var _m = useState(), quotedMessage = _m[0], setQuotedMessage = _m[1];
|
|
66
63
|
var notificationTimeouts = [];
|
|
67
|
-
var
|
|
64
|
+
var _o = useReducer(channelReducer, __assign(__assign({}, initialState), { loading: !channel.initialized })), state = _o[0], dispatch = _o[1];
|
|
68
65
|
var isMounted = useIsMounted();
|
|
69
66
|
var originalTitle = useRef('');
|
|
70
67
|
var lastRead = useRef(new Date());
|
|
71
68
|
var online = useRef(true);
|
|
72
69
|
var channelCapabilitiesArray = (_a = channel.data) === null || _a === void 0 ? void 0 : _a.own_capabilities;
|
|
73
|
-
var emojiConfig = {
|
|
74
|
-
commonEmoji: commonEmoji,
|
|
75
|
-
defaultMinimalEmojis: defaultMinimalEmojis,
|
|
76
|
-
emojiData: emojiData,
|
|
77
|
-
emojiSetDef: emojiSetDef,
|
|
78
|
-
};
|
|
79
70
|
var throttledCopyStateFromChannel = throttle(function () { return dispatch({ channel: channel, type: 'copyStateFromChannelOnEvent' }); }, 500, {
|
|
80
71
|
leading: true,
|
|
81
72
|
trailing: true,
|
|
@@ -620,7 +611,8 @@ var ChannelInner = function (props) {
|
|
|
620
611
|
CooldownTimer: props.CooldownTimer,
|
|
621
612
|
DateSeparator: props.DateSeparator,
|
|
622
613
|
EditMessageInput: props.EditMessageInput,
|
|
623
|
-
|
|
614
|
+
EmojiPicker: props.EmojiPicker,
|
|
615
|
+
emojiSearchIndex: props.emojiSearchIndex,
|
|
624
616
|
EmptyStateIndicator: props.EmptyStateIndicator,
|
|
625
617
|
FileUploadIcon: props.FileUploadIcon,
|
|
626
618
|
GiphyPreviewMessage: props.GiphyPreviewMessage,
|
|
@@ -653,11 +645,6 @@ var ChannelInner = function (props) {
|
|
|
653
645
|
VirtualMessage: props.VirtualMessage,
|
|
654
646
|
});
|
|
655
647
|
}, [props.reactionOptions]);
|
|
656
|
-
var emojiContextValue = useMemo(function () { return ({
|
|
657
|
-
emojiConfig: emojiConfig,
|
|
658
|
-
EmojiIndex: props.EmojiIndex,
|
|
659
|
-
EmojiPicker: props.EmojiPicker,
|
|
660
|
-
}); }, []);
|
|
661
648
|
var typingContextValue = useCreateTypingContext({
|
|
662
649
|
typing: typing,
|
|
663
650
|
});
|
|
@@ -678,11 +665,10 @@ var ChannelInner = function (props) {
|
|
|
678
665
|
React.createElement(ChannelStateProvider, { value: channelStateContextValue },
|
|
679
666
|
React.createElement(ChannelActionProvider, { value: channelActionContextValue },
|
|
680
667
|
React.createElement(ComponentProvider, { value: componentContextValue },
|
|
681
|
-
React.createElement(
|
|
682
|
-
React.createElement(
|
|
683
|
-
React.createElement(
|
|
684
|
-
|
|
685
|
-
!dragAndDropWindow && React.createElement(React.Fragment, null, children)))))))));
|
|
668
|
+
React.createElement(TypingProvider, { value: typingContextValue },
|
|
669
|
+
React.createElement("div", { className: "".concat(chatContainerClass) },
|
|
670
|
+
dragAndDropWindow && (React.createElement(DropzoneProvider, __assign({}, optionalMessageInputProps), children)),
|
|
671
|
+
!dragAndDropWindow && React.createElement(React.Fragment, null, children))))))));
|
|
686
672
|
};
|
|
687
673
|
/**
|
|
688
674
|
* A wrapper component that provides channel data and renders children.
|
|
@@ -690,7 +676,6 @@ var ChannelInner = function (props) {
|
|
|
690
676
|
* - [ChannelStateContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_state_context/)
|
|
691
677
|
* - [ChannelActionContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_action_context/)
|
|
692
678
|
* - [ComponentContext](https://getstream.io/chat/docs/sdk/react/contexts/component_context/)
|
|
693
|
-
* - [EmojiContext](https://getstream.io/chat/docs/sdk/react/contexts/emoji_context/)
|
|
694
679
|
* - [TypingContext](https://getstream.io/chat/docs/sdk/react/contexts/typing_context/)
|
|
695
680
|
*/
|
|
696
681
|
export var Channel = React.memo(UnMemoizedChannel);
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { EmojiData, NimbleEmojiIndex } from 'emoji-mart';
|
|
3
2
|
import type { CommandResponse, UserResponse } from 'stream-chat';
|
|
4
3
|
import type { TriggerSettings } from '../MessageInput/DefaultTriggerProvider';
|
|
5
|
-
import type { CustomTrigger, DefaultStreamChatGenerics } from '../../types/types';
|
|
4
|
+
import type { CustomTrigger, DefaultStreamChatGenerics, UnknownType } from '../../types/types';
|
|
5
|
+
import { EmojiSearchIndex } from 'components/MessageInput';
|
|
6
6
|
declare type ObjectUnion<T> = T[keyof T];
|
|
7
7
|
export declare type SuggestionCommand<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = CommandResponse<StreamChatGenerics>;
|
|
8
8
|
export declare type SuggestionUser<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = UserResponse<StreamChatGenerics>;
|
|
9
|
-
export declare type SuggestionItemProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
9
|
+
export declare type SuggestionItemProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, T extends UnknownType = UnknownType> = {
|
|
10
10
|
className: string;
|
|
11
11
|
component: React.ComponentType<{
|
|
12
|
-
entity:
|
|
12
|
+
entity: Awaited<ReturnType<EmojiSearchIndex<T>['search']>> | SuggestionUser<StreamChatGenerics> | SuggestionCommand<StreamChatGenerics>;
|
|
13
13
|
selected: boolean;
|
|
14
14
|
}>;
|
|
15
|
-
item:
|
|
15
|
+
item: Awaited<ReturnType<EmojiSearchIndex<T>['search']>> | SuggestionUser<StreamChatGenerics> | SuggestionCommand<StreamChatGenerics>;
|
|
16
16
|
key: React.Key;
|
|
17
17
|
onClickHandler: (event: React.BaseSyntheticEvent) => void;
|
|
18
|
-
onSelectHandler: (item:
|
|
18
|
+
onSelectHandler: (item: Awaited<ReturnType<EmojiSearchIndex<T>['search']>> | SuggestionUser<StreamChatGenerics> | SuggestionCommand<StreamChatGenerics>) => void;
|
|
19
19
|
selected: boolean;
|
|
20
20
|
style: React.CSSProperties;
|
|
21
21
|
value: string;
|
|
@@ -50,7 +50,7 @@ export declare type SuggestionListProps<StreamChatGenerics extends DefaultStream
|
|
|
50
50
|
value?: string;
|
|
51
51
|
};
|
|
52
52
|
}>;
|
|
53
|
-
export declare type ChatAutoCompleteProps = {
|
|
53
|
+
export declare type ChatAutoCompleteProps<T extends UnknownType = UnknownType> = {
|
|
54
54
|
/** Function to override the default submit handler on the underlying `textarea` component */
|
|
55
55
|
handleSubmit?: (event: React.BaseSyntheticEvent) => void;
|
|
56
56
|
/** Function to run on blur of the underlying `textarea` component */
|
|
@@ -68,7 +68,7 @@ export declare type ChatAutoCompleteProps = {
|
|
|
68
68
|
/** The text value of the underlying `textarea` component */
|
|
69
69
|
value?: string;
|
|
70
70
|
/** Function to override the default emojiReplace behavior on the `wordReplace` prop of the `textarea` component */
|
|
71
|
-
wordReplace?: (word: string, emojiIndex?:
|
|
71
|
+
wordReplace?: (word: string, emojiIndex?: EmojiSearchIndex<T>) => string;
|
|
72
72
|
};
|
|
73
73
|
export declare const ChatAutoComplete: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger>(props: ChatAutoCompleteProps) => JSX.Element;
|
|
74
74
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatAutoComplete.d.ts","sourceRoot":"","sources":["../../../src/components/ChatAutoComplete/ChatAutoComplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAS3C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ChatAutoComplete.d.ts","sourceRoot":"","sources":["../../../src/components/ChatAutoComplete/ChatAutoComplete.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
1
2
|
import React, { useCallback } from 'react';
|
|
2
3
|
import { AutoCompleteTextarea } from '../AutoCompleteTextarea';
|
|
3
4
|
import { LoadingIndicator } from '../Loading/LoadingIndicator';
|
|
@@ -8,23 +9,32 @@ var UnMemoizedChatAutoComplete = function (props) {
|
|
|
8
9
|
var _a = useComponentContext('ChatAutoComplete'), SuggestionItem = _a.AutocompleteSuggestionItem, SuggestionList = _a.AutocompleteSuggestionList;
|
|
9
10
|
var t = useTranslationContext('ChatAutoComplete').t;
|
|
10
11
|
var messageInput = useMessageInputContext('ChatAutoComplete');
|
|
11
|
-
var cooldownRemaining = messageInput.cooldownRemaining, disabled = messageInput.disabled,
|
|
12
|
+
var cooldownRemaining = messageInput.cooldownRemaining, disabled = messageInput.disabled, emojiSearchIndex = messageInput.emojiSearchIndex, innerRef = messageInput.textareaRef;
|
|
12
13
|
var placeholder = props.placeholder || t('Type your message');
|
|
13
14
|
var emojiReplace = props.wordReplace
|
|
14
|
-
? function (word) { var _a; return (_a = props.wordReplace) === null || _a === void 0 ? void 0 : _a.call(props, word,
|
|
15
|
-
: function (word) {
|
|
16
|
-
var found
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
? function (word) { var _a; return (_a = props.wordReplace) === null || _a === void 0 ? void 0 : _a.call(props, word, emojiSearchIndex); }
|
|
16
|
+
: function (word) { return __awaiter(void 0, void 0, void 0, function () {
|
|
17
|
+
var found, emoji, firstSkin;
|
|
18
|
+
var _a, _b;
|
|
19
|
+
return __generator(this, function (_c) {
|
|
20
|
+
switch (_c.label) {
|
|
21
|
+
case 0: return [4 /*yield*/, (emojiSearchIndex === null || emojiSearchIndex === void 0 ? void 0 : emojiSearchIndex.search(word))];
|
|
22
|
+
case 1:
|
|
23
|
+
found = (_c.sent()) || [];
|
|
24
|
+
emoji = found
|
|
25
|
+
.filter(Boolean)
|
|
26
|
+
.slice(0, 10)
|
|
27
|
+
.find(function (_a) {
|
|
28
|
+
var emoticons = _a.emoticons;
|
|
29
|
+
return !!(emoticons === null || emoticons === void 0 ? void 0 : emoticons.includes(word));
|
|
30
|
+
});
|
|
31
|
+
if (!emoji)
|
|
32
|
+
return [2 /*return*/, null];
|
|
33
|
+
firstSkin = ((_a = emoji.skins) !== null && _a !== void 0 ? _a : [])[0];
|
|
34
|
+
return [2 /*return*/, (_b = emoji.native) !== null && _b !== void 0 ? _b : firstSkin.native];
|
|
35
|
+
}
|
|
23
36
|
});
|
|
24
|
-
|
|
25
|
-
return null;
|
|
26
|
-
return emoji.native;
|
|
27
|
-
};
|
|
37
|
+
}); };
|
|
28
38
|
var updateInnerRef = useCallback(function (ref) {
|
|
29
39
|
if (innerRef) {
|
|
30
40
|
innerRef.current = ref;
|
|
@@ -10,7 +10,7 @@ var UnMemoizedDateSeparator = function (props) {
|
|
|
10
10
|
messageCreatedAt: messageCreatedAt,
|
|
11
11
|
tDateTimeParser: tDateTimeParser,
|
|
12
12
|
});
|
|
13
|
-
return (React.createElement("div", { className: 'str-chat__date-separator' },
|
|
13
|
+
return (React.createElement("div", { className: 'str-chat__date-separator', "data-testid": 'date-separator' },
|
|
14
14
|
(position === 'right' || position === 'center') && (React.createElement("hr", { className: 'str-chat__date-separator-line' })),
|
|
15
15
|
React.createElement("div", { className: 'str-chat__date-separator-date' }, unread ? "".concat(t('New'), " - ").concat(formattedDate) : formattedDate),
|
|
16
16
|
(position === 'left' || position === 'center') && (React.createElement("hr", { className: 'str-chat__date-separator-line' }))));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type EmojiPickerProps = {
|
|
3
|
+
ButtonIconComponent?: React.ComponentType;
|
|
4
|
+
buttonClassName?: string;
|
|
5
|
+
emojiPickerContainerClassName?: string;
|
|
6
|
+
wrapperClassName?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const EmojiPicker: (props: EmojiPickerProps) => JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=EmojiPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmojiPicker.d.ts","sourceRoot":"","sources":["../../../src/components/Emojis/EmojiPicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAenD,aAAK,gBAAgB,GAAG;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAeF,eAAO,MAAM,WAAW,UAAW,gBAAgB,gBAmElD,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
/* eslint-disable typescript-sort-keys/interface */
|
|
3
|
+
import React, { useEffect, useState } from 'react';
|
|
4
|
+
import { usePopper } from 'react-popper';
|
|
5
|
+
import data from '@emoji-mart/data';
|
|
6
|
+
import Picker from '@emoji-mart/react';
|
|
7
|
+
import { useChatContext, useMessageInputContext, useTranslationContext, } from '../../context';
|
|
8
|
+
import { EmojiIconLarge, EmojiPickerIcon } from '../MessageInput/icons';
|
|
9
|
+
import { Tooltip } from '../Tooltip';
|
|
10
|
+
var classNames = {
|
|
11
|
+
1: {
|
|
12
|
+
buttonClassName: 'str-chat__input-flat-emojiselect',
|
|
13
|
+
emojiPickerContainerClassName: undefined,
|
|
14
|
+
wrapperClassName: 'str-chat__emojiselect-wrapper',
|
|
15
|
+
},
|
|
16
|
+
2: {
|
|
17
|
+
buttonClassName: 'str-chat__emoji-picker-button',
|
|
18
|
+
emojiPickerContainerClassName: 'str-chat__message-textarea-emoji-picker-container',
|
|
19
|
+
wrapperClassName: 'str-chat__message-textarea-emoji-picker',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
export var EmojiPicker = function (props) {
|
|
23
|
+
var _a, _b, _c;
|
|
24
|
+
var themeVersion = useChatContext('EmojiPicker').themeVersion;
|
|
25
|
+
var t = useTranslationContext('EmojiPicker').t;
|
|
26
|
+
var _d = useMessageInputContext('EmojiPicker'), insertText = _d.insertText, textareaRef = _d.textareaRef;
|
|
27
|
+
var _e = useState(false), displayPicker = _e[0], setDisplayPicker = _e[1];
|
|
28
|
+
var _f = useState(null), referenceElement = _f[0], setReferenceElement = _f[1];
|
|
29
|
+
var _g = useState(null), popperElement = _g[0], setPopperElement = _g[1];
|
|
30
|
+
var _h = usePopper(referenceElement, popperElement, {
|
|
31
|
+
placement: themeVersion === '2' ? 'top-end' : 'top-start',
|
|
32
|
+
}), attributes = _h.attributes, styles = _h.styles;
|
|
33
|
+
var _j = classNames[themeVersion], buttonClassName = _j.buttonClassName, emojiPickerContainerClassName = _j.emojiPickerContainerClassName, wrapperClassName = _j.wrapperClassName;
|
|
34
|
+
var _k = props.ButtonIconComponent, ButtonIconComponent = _k === void 0 ? themeVersion === '2' ? EmojiPickerIcon : EmojiIconLarge : _k;
|
|
35
|
+
useEffect(function () {
|
|
36
|
+
if (!popperElement || !referenceElement)
|
|
37
|
+
return;
|
|
38
|
+
var handlePointerDown = function (e) {
|
|
39
|
+
var target = e.target;
|
|
40
|
+
if (popperElement.contains(target) || referenceElement.contains(target))
|
|
41
|
+
return;
|
|
42
|
+
setDisplayPicker(false);
|
|
43
|
+
};
|
|
44
|
+
window.addEventListener('pointerdown', handlePointerDown);
|
|
45
|
+
return function () { return window.removeEventListener('pointerdown', handlePointerDown); };
|
|
46
|
+
}, [referenceElement, popperElement]);
|
|
47
|
+
return (React.createElement("div", { className: (_a = props.wrapperClassName) !== null && _a !== void 0 ? _a : wrapperClassName },
|
|
48
|
+
displayPicker && (React.createElement("div", __assign({ className: (_b = props.emojiPickerContainerClassName) !== null && _b !== void 0 ? _b : emojiPickerContainerClassName, style: styles.popper }, attributes.popper, { ref: setPopperElement }),
|
|
49
|
+
React.createElement(Picker, { data: data, onEmojiSelect: function (e) {
|
|
50
|
+
var _a;
|
|
51
|
+
// @ts-ignore emoji-mart is missing types
|
|
52
|
+
insertText(e.native);
|
|
53
|
+
(_a = textareaRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
54
|
+
} }))),
|
|
55
|
+
themeVersion === '1' && (React.createElement(Tooltip, null, displayPicker ? t('Close emoji picker') : t('Open emoji picker'))),
|
|
56
|
+
React.createElement("button", { "aria-label": 'Emoji picker', className: (_c = props.buttonClassName) !== null && _c !== void 0 ? _c : buttonClassName, onClick: function () { return setDisplayPicker(function (cv) { return !cv; }); }, ref: setReferenceElement, type: 'button' }, ButtonIconComponent && React.createElement(ButtonIconComponent, null))));
|
|
57
|
+
};
|