stream-chat-react 10.15.0 → 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 +1249 -4491
- 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 +9 -7
- 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/Channel/Channel.d.ts +7 -13
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +58 -69
- 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/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/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/Reactions/ReactionSelector.d.ts +3 -8
- package/dist/components/Reactions/ReactionSelector.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionSelector.js +18 -25
- package/dist/components/Reactions/ReactionsList.d.ts +3 -8
- package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionsList.js +9 -12
- package/dist/components/Reactions/SimpleReactionsList.d.ts +2 -5
- package/dist/components/Reactions/SimpleReactionsList.d.ts.map +1 -1
- package/dist/components/Reactions/SimpleReactionsList.js +12 -15
- package/dist/components/Reactions/SpriteImage.d.ts +12 -0
- package/dist/components/Reactions/SpriteImage.d.ts.map +1 -0
- package/dist/components/Reactions/SpriteImage.js +28 -0
- package/dist/components/Reactions/StreamEmoji.d.ts +18 -0
- package/dist/components/Reactions/StreamEmoji.d.ts.map +1 -0
- package/dist/components/Reactions/StreamEmoji.js +16 -0
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts +7 -7
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -1
- package/dist/components/Reactions/hooks/useProcessReactions.js +14 -18
- package/dist/components/Reactions/index.d.ts +3 -0
- package/dist/components/Reactions/index.d.ts.map +1 -1
- package/dist/components/Reactions/index.js +3 -0
- package/dist/components/Reactions/reactionOptions.d.ts +8 -0
- package/dist/components/Reactions/reactionOptions.d.ts.map +1 -0
- package/dist/components/Reactions/reactionOptions.js +11 -0
- package/dist/components/Reactions/utils/utils.d.ts +1 -0
- package/dist/components/Reactions/utils/utils.d.ts.map +1 -1
- package/dist/components/Reactions/utils/utils.js +12 -0
- package/dist/context/ChannelStateContext.d.ts +1 -1
- package/dist/context/ChatContext.d.ts +1 -1
- package/dist/context/ComponentContext.d.ts +5 -2
- package/dist/context/ComponentContext.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 +1038 -4157
- 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/types/types.d.ts +3 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +34 -7
- 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/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 -49
- package/dist/context/EmojiContext.d.ts.map +0 -1
- package/dist/context/EmojiContext.js +0 -41
- package/dist/index.cjs.js.map +0 -1
- package/dist/stream-emoji.json +0 -1
|
@@ -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"}
|
|
@@ -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;
|
|
@@ -3,12 +3,11 @@ 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';
|
|
11
9
|
import type { URLEnrichmentConfig } from '../MessageInput/hooks/useLinkPreviews';
|
|
10
|
+
import { ReactionOptions } from '../../components/Reactions/reactionOptions';
|
|
12
11
|
export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger> = {
|
|
13
12
|
/** List of accepted file types */
|
|
14
13
|
acceptedFiles?: string[];
|
|
@@ -42,16 +41,10 @@ export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGen
|
|
|
42
41
|
dragAndDropWindow?: boolean;
|
|
43
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) */
|
|
44
43
|
EditMessageInput?: ComponentContextValue<StreamChatGenerics>['EditMessageInput'];
|
|
45
|
-
/** Custom UI component
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
/** Custom UI component for emoji button in input, defaults to and accepts same props as: [EmojiIconSmall](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/icons.tsx) */
|
|
50
|
-
EmojiIcon?: ComponentContextValue<StreamChatGenerics>['EmojiIcon'];
|
|
51
|
-
/** Custom UI component to override default `NimbleEmojiIndex` from `emoji-mart` */
|
|
52
|
-
EmojiIndex?: EmojiContextValue['EmojiIndex'];
|
|
53
|
-
/** Custom UI component to override default `NimblePicker` from `emoji-mart` */
|
|
54
|
-
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'];
|
|
55
48
|
/** Custom UI component to be shown if no active channel is set, defaults to null and skips rendering the Channel component */
|
|
56
49
|
EmptyPlaceholder?: React.ReactElement;
|
|
57
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) */
|
|
@@ -124,6 +117,8 @@ export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGen
|
|
|
124
117
|
QuotedMessage?: ComponentContextValue<StreamChatGenerics>['QuotedMessage'];
|
|
125
118
|
/** Custom UI component to override the message input's quoted message preview, defaults to and accepts same props as: [QuotedMessagePreview](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/QuotedMessagePreview.tsx) */
|
|
126
119
|
QuotedMessagePreview?: ComponentContextValue<StreamChatGenerics>['QuotedMessagePreview'];
|
|
120
|
+
/** Custom reaction options to be applied to ReactionSelector, ReactionList and SimpleReactionList components */
|
|
121
|
+
reactionOptions?: ReactionOptions;
|
|
127
122
|
/** Custom UI component to display the reaction selector, defaults to and accepts same props as: [ReactionSelector](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Reactions/ReactionSelector.tsx) */
|
|
128
123
|
ReactionSelector?: ComponentContextValue<StreamChatGenerics>['ReactionSelector'];
|
|
129
124
|
/** Custom UI component to display the list of reactions on a message, defaults to and accepts same props as: [ReactionsList](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Reactions/ReactionsList.tsx) */
|
|
@@ -155,7 +150,6 @@ export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGen
|
|
|
155
150
|
* - [ChannelStateContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_state_context/)
|
|
156
151
|
* - [ChannelActionContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_action_context/)
|
|
157
152
|
* - [ComponentContext](https://getstream.io/chat/docs/sdk/react/contexts/component_context/)
|
|
158
|
-
* - [EmojiContext](https://getstream.io/chat/docs/sdk/react/contexts/emoji_context/)
|
|
159
153
|
* - [TypingContext](https://getstream.io/chat/docs/sdk/react/contexts/typing_context/)
|
|
160
154
|
*/
|
|
161
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,16 +20,15 @@ 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';
|
|
33
30
|
import { getImageAttachmentConfiguration, getVideoAttachmentConfiguration, } from '../Attachment/attachment-sizing';
|
|
31
|
+
import { defaultReactionOptions, } from '../../components/Reactions/reactionOptions';
|
|
34
32
|
var UnMemoizedChannel = function (props) {
|
|
35
33
|
var propsChannel = props.channel, _a = props.EmptyPlaceholder, EmptyPlaceholder = _a === void 0 ? null : _a, LoadingErrorIndicator = props.LoadingErrorIndicator, _b = props.LoadingIndicator, LoadingIndicator = _b === void 0 ? DefaultLoadingIndicator : _b;
|
|
36
34
|
var _c = useChatContext('Channel'), contextChannel = _c.channel, channelsQueryState = _c.channelsQueryState, customClasses = _c.customClasses, theme = _c.theme;
|
|
@@ -55,26 +53,20 @@ var UnMemoizedChannel = function (props) {
|
|
|
55
53
|
};
|
|
56
54
|
var ChannelInner = function (props) {
|
|
57
55
|
var _a;
|
|
58
|
-
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,
|
|
59
|
-
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;
|
|
60
58
|
var t = useTranslationContext('Channel').t;
|
|
61
|
-
var
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
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];
|
|
65
63
|
var notificationTimeouts = [];
|
|
66
|
-
var
|
|
64
|
+
var _o = useReducer(channelReducer, __assign(__assign({}, initialState), { loading: !channel.initialized })), state = _o[0], dispatch = _o[1];
|
|
67
65
|
var isMounted = useIsMounted();
|
|
68
66
|
var originalTitle = useRef('');
|
|
69
67
|
var lastRead = useRef(new Date());
|
|
70
68
|
var online = useRef(true);
|
|
71
69
|
var channelCapabilitiesArray = (_a = channel.data) === null || _a === void 0 ? void 0 : _a.own_capabilities;
|
|
72
|
-
var emojiConfig = {
|
|
73
|
-
commonEmoji: commonEmoji,
|
|
74
|
-
defaultMinimalEmojis: defaultMinimalEmojis,
|
|
75
|
-
emojiData: emojiData,
|
|
76
|
-
emojiSetDef: emojiSetDef,
|
|
77
|
-
};
|
|
78
70
|
var throttledCopyStateFromChannel = throttle(function () { return dispatch({ channel: channel, type: 'copyStateFromChannelOnEvent' }); }, 500, {
|
|
79
71
|
leading: true,
|
|
80
72
|
trailing: true,
|
|
@@ -607,53 +599,52 @@ var ChannelInner = function (props) {
|
|
|
607
599
|
jumpToMessage,
|
|
608
600
|
jumpToLatestMessage,
|
|
609
601
|
]);
|
|
610
|
-
var componentContextValue = useMemo(function () {
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
}); }, []);
|
|
602
|
+
var componentContextValue = useMemo(function () {
|
|
603
|
+
var _a;
|
|
604
|
+
return ({
|
|
605
|
+
Attachment: props.Attachment || DefaultAttachment,
|
|
606
|
+
AttachmentPreviewList: props.AttachmentPreviewList,
|
|
607
|
+
AutocompleteSuggestionHeader: props.AutocompleteSuggestionHeader,
|
|
608
|
+
AutocompleteSuggestionItem: props.AutocompleteSuggestionItem,
|
|
609
|
+
AutocompleteSuggestionList: props.AutocompleteSuggestionList,
|
|
610
|
+
Avatar: props.Avatar,
|
|
611
|
+
CooldownTimer: props.CooldownTimer,
|
|
612
|
+
DateSeparator: props.DateSeparator,
|
|
613
|
+
EditMessageInput: props.EditMessageInput,
|
|
614
|
+
EmojiPicker: props.EmojiPicker,
|
|
615
|
+
emojiSearchIndex: props.emojiSearchIndex,
|
|
616
|
+
EmptyStateIndicator: props.EmptyStateIndicator,
|
|
617
|
+
FileUploadIcon: props.FileUploadIcon,
|
|
618
|
+
GiphyPreviewMessage: props.GiphyPreviewMessage,
|
|
619
|
+
HeaderComponent: props.HeaderComponent,
|
|
620
|
+
Input: props.Input,
|
|
621
|
+
LinkPreviewList: props.LinkPreviewList,
|
|
622
|
+
LoadingIndicator: props.LoadingIndicator,
|
|
623
|
+
Message: props.Message || MessageSimple,
|
|
624
|
+
MessageDeleted: props.MessageDeleted,
|
|
625
|
+
MessageListNotifications: props.MessageListNotifications,
|
|
626
|
+
MessageNotification: props.MessageNotification,
|
|
627
|
+
MessageOptions: props.MessageOptions,
|
|
628
|
+
MessageRepliesCountButton: props.MessageRepliesCountButton,
|
|
629
|
+
MessageStatus: props.MessageStatus,
|
|
630
|
+
MessageSystem: props.MessageSystem,
|
|
631
|
+
MessageTimestamp: props.MessageTimestamp,
|
|
632
|
+
ModalGallery: props.ModalGallery,
|
|
633
|
+
PinIndicator: props.PinIndicator,
|
|
634
|
+
QuotedMessage: props.QuotedMessage,
|
|
635
|
+
QuotedMessagePreview: props.QuotedMessagePreview,
|
|
636
|
+
reactionOptions: (_a = props.reactionOptions) !== null && _a !== void 0 ? _a : defaultReactionOptions,
|
|
637
|
+
ReactionSelector: props.ReactionSelector,
|
|
638
|
+
ReactionsList: props.ReactionsList,
|
|
639
|
+
SendButton: props.SendButton,
|
|
640
|
+
ThreadHead: props.ThreadHead,
|
|
641
|
+
ThreadHeader: props.ThreadHeader,
|
|
642
|
+
ThreadStart: props.ThreadStart,
|
|
643
|
+
TriggerProvider: props.TriggerProvider,
|
|
644
|
+
TypingIndicator: props.TypingIndicator,
|
|
645
|
+
VirtualMessage: props.VirtualMessage,
|
|
646
|
+
});
|
|
647
|
+
}, [props.reactionOptions]);
|
|
657
648
|
var typingContextValue = useCreateTypingContext({
|
|
658
649
|
typing: typing,
|
|
659
650
|
});
|
|
@@ -674,11 +665,10 @@ var ChannelInner = function (props) {
|
|
|
674
665
|
React.createElement(ChannelStateProvider, { value: channelStateContextValue },
|
|
675
666
|
React.createElement(ChannelActionProvider, { value: channelActionContextValue },
|
|
676
667
|
React.createElement(ComponentProvider, { value: componentContextValue },
|
|
677
|
-
React.createElement(
|
|
678
|
-
React.createElement(
|
|
679
|
-
React.createElement(
|
|
680
|
-
|
|
681
|
-
!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))))))));
|
|
682
672
|
};
|
|
683
673
|
/**
|
|
684
674
|
* A wrapper component that provides channel data and renders children.
|
|
@@ -686,7 +676,6 @@ var ChannelInner = function (props) {
|
|
|
686
676
|
* - [ChannelStateContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_state_context/)
|
|
687
677
|
* - [ChannelActionContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_action_context/)
|
|
688
678
|
* - [ComponentContext](https://getstream.io/chat/docs/sdk/react/contexts/component_context/)
|
|
689
|
-
* - [EmojiContext](https://getstream.io/chat/docs/sdk/react/contexts/emoji_context/)
|
|
690
679
|
* - [TypingContext](https://getstream.io/chat/docs/sdk/react/contexts/typing_context/)
|
|
691
680
|
*/
|
|
692
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;
|
|
@@ -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"}
|