stream-chat-react 10.14.0 → 11.0.0-rc.1
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 +581 -529
- 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/Channel/Channel.d.ts +3 -2
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +46 -42
- 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 +8 -10
- 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/ComponentContext.d.ts +2 -0
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/context/EmojiContext.d.ts +1 -2
- package/dist/context/EmojiContext.d.ts.map +1 -1
- package/dist/context/EmojiContext.js +1 -3
- package/dist/index.cjs.js +160 -115
- package/dist/index.cjs.js.map +1 -1
- 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 +1 -1
|
@@ -9,6 +9,7 @@ import type { MessageProps } from '../Message/types';
|
|
|
9
9
|
import type { MessageInputProps } from '../MessageInput/MessageInput';
|
|
10
10
|
import type { CustomTrigger, DefaultStreamChatGenerics, GiphyVersions, ImageAttachmentSizeHandler, SendMessageOptions, UpdateMessageOptions, VideoAttachmentSizeHandler } from '../../types/types';
|
|
11
11
|
import type { URLEnrichmentConfig } from '../MessageInput/hooks/useLinkPreviews';
|
|
12
|
+
import { ReactionOptions } from '../../components/Reactions/reactionOptions';
|
|
12
13
|
export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger> = {
|
|
13
14
|
/** List of accepted file types */
|
|
14
15
|
acceptedFiles?: string[];
|
|
@@ -42,8 +43,6 @@ export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGen
|
|
|
42
43
|
dragAndDropWindow?: boolean;
|
|
43
44
|
/** 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
45
|
EditMessageInput?: ComponentContextValue<StreamChatGenerics>['EditMessageInput'];
|
|
45
|
-
/** Custom UI component to override default `NimbleEmoji` from `emoji-mart` */
|
|
46
|
-
Emoji?: EmojiContextValue['Emoji'];
|
|
47
46
|
/** Custom prop to override default `facebook.json` emoji data set from `emoji-mart` */
|
|
48
47
|
emojiData?: EmojiMartData;
|
|
49
48
|
/** 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) */
|
|
@@ -124,6 +123,8 @@ export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGen
|
|
|
124
123
|
QuotedMessage?: ComponentContextValue<StreamChatGenerics>['QuotedMessage'];
|
|
125
124
|
/** 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
125
|
QuotedMessagePreview?: ComponentContextValue<StreamChatGenerics>['QuotedMessagePreview'];
|
|
126
|
+
/** Custom reaction options to be applied to ReactionSelector, ReactionList and SimpleReactionList components */
|
|
127
|
+
reactionOptions?: ReactionOptions;
|
|
127
128
|
/** 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
129
|
ReactionSelector?: ComponentContextValue<StreamChatGenerics>['ReactionSelector'];
|
|
129
130
|
/** 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) */
|
|
@@ -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;AAUrB,OAAO,EAAE,eAAe,EAAuB,MAAM,6BAA6B,CAAC;AAGnF,OAAO,EAEL,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAepB,OAAO,EAAE,qBAAqB,EAAqB,MAAM,gCAAgC,CAAC;AAE1F,OAAO,EAAe,iBAAiB,EAAiB,MAAM,4BAA4B,CAAC;AAe3F,OAAO,KAAK,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EACzB,aAAa,EACb,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/components/Channel/Channel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ import { makeAddNotifications } from './utils';
|
|
|
31
31
|
import { getChannel } from '../../utils/getChannel';
|
|
32
32
|
import { useChannelContainerClasses } from './hooks/useChannelContainerClasses';
|
|
33
33
|
import { getImageAttachmentConfiguration, getVideoAttachmentConfiguration, } from '../Attachment/attachment-sizing';
|
|
34
|
+
import { defaultReactionOptions, } from '../../components/Reactions/reactionOptions';
|
|
34
35
|
var UnMemoizedChannel = function (props) {
|
|
35
36
|
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
37
|
var _c = useChatContext('Channel'), contextChannel = _c.channel, channelsQueryState = _c.channelsQueryState, customClasses = _c.customClasses, theme = _c.theme;
|
|
@@ -607,49 +608,52 @@ var ChannelInner = function (props) {
|
|
|
607
608
|
jumpToMessage,
|
|
608
609
|
jumpToLatestMessage,
|
|
609
610
|
]);
|
|
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
|
-
|
|
611
|
+
var componentContextValue = useMemo(function () {
|
|
612
|
+
var _a;
|
|
613
|
+
return ({
|
|
614
|
+
Attachment: props.Attachment || DefaultAttachment,
|
|
615
|
+
AttachmentPreviewList: props.AttachmentPreviewList,
|
|
616
|
+
AutocompleteSuggestionHeader: props.AutocompleteSuggestionHeader,
|
|
617
|
+
AutocompleteSuggestionItem: props.AutocompleteSuggestionItem,
|
|
618
|
+
AutocompleteSuggestionList: props.AutocompleteSuggestionList,
|
|
619
|
+
Avatar: props.Avatar,
|
|
620
|
+
CooldownTimer: props.CooldownTimer,
|
|
621
|
+
DateSeparator: props.DateSeparator,
|
|
622
|
+
EditMessageInput: props.EditMessageInput,
|
|
623
|
+
EmojiIcon: props.EmojiIcon,
|
|
624
|
+
EmptyStateIndicator: props.EmptyStateIndicator,
|
|
625
|
+
FileUploadIcon: props.FileUploadIcon,
|
|
626
|
+
GiphyPreviewMessage: props.GiphyPreviewMessage,
|
|
627
|
+
HeaderComponent: props.HeaderComponent,
|
|
628
|
+
Input: props.Input,
|
|
629
|
+
LinkPreviewList: props.LinkPreviewList,
|
|
630
|
+
LoadingIndicator: props.LoadingIndicator,
|
|
631
|
+
Message: props.Message || MessageSimple,
|
|
632
|
+
MessageDeleted: props.MessageDeleted,
|
|
633
|
+
MessageListNotifications: props.MessageListNotifications,
|
|
634
|
+
MessageNotification: props.MessageNotification,
|
|
635
|
+
MessageOptions: props.MessageOptions,
|
|
636
|
+
MessageRepliesCountButton: props.MessageRepliesCountButton,
|
|
637
|
+
MessageStatus: props.MessageStatus,
|
|
638
|
+
MessageSystem: props.MessageSystem,
|
|
639
|
+
MessageTimestamp: props.MessageTimestamp,
|
|
640
|
+
ModalGallery: props.ModalGallery,
|
|
641
|
+
PinIndicator: props.PinIndicator,
|
|
642
|
+
QuotedMessage: props.QuotedMessage,
|
|
643
|
+
QuotedMessagePreview: props.QuotedMessagePreview,
|
|
644
|
+
reactionOptions: (_a = props.reactionOptions) !== null && _a !== void 0 ? _a : defaultReactionOptions,
|
|
645
|
+
ReactionSelector: props.ReactionSelector,
|
|
646
|
+
ReactionsList: props.ReactionsList,
|
|
647
|
+
SendButton: props.SendButton,
|
|
648
|
+
ThreadHead: props.ThreadHead,
|
|
649
|
+
ThreadHeader: props.ThreadHeader,
|
|
650
|
+
ThreadStart: props.ThreadStart,
|
|
651
|
+
TriggerProvider: props.TriggerProvider,
|
|
652
|
+
TypingIndicator: props.TypingIndicator,
|
|
653
|
+
VirtualMessage: props.VirtualMessage,
|
|
654
|
+
});
|
|
655
|
+
}, [props.reactionOptions]);
|
|
651
656
|
var emojiContextValue = useMemo(function () { return ({
|
|
652
|
-
Emoji: props.Emoji,
|
|
653
657
|
emojiConfig: emojiConfig,
|
|
654
658
|
EmojiIndex: props.EmojiIndex,
|
|
655
659
|
EmojiPicker: props.EmojiPicker,
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AvatarProps } from '../Avatar';
|
|
3
|
-
import { ReactionEmoji } from '../Channel/emojiData';
|
|
4
|
-
import type { NimbleEmojiProps } from 'emoji-mart';
|
|
5
3
|
import type { ReactionResponse } from 'stream-chat';
|
|
6
4
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
5
|
+
import type { ReactionOptions } from './reactionOptions';
|
|
7
6
|
export declare type ReactionSelectorProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
8
|
-
/** Additional props to be passed to the [NimbleEmoji](https://github.com/missive/emoji-mart/blob/master/src/components/emoji/nimble-emoji.js) component from `emoji-mart` */
|
|
9
|
-
additionalEmojiProps?: Partial<NimbleEmojiProps>;
|
|
10
7
|
/** Custom UI component to display user avatar, defaults to and accepts same props as: [Avatar](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Avatar/Avatar.tsx) */
|
|
11
8
|
Avatar?: React.ElementType<AvatarProps>;
|
|
12
9
|
/** If true, shows the user's avatar with the reaction */
|
|
@@ -18,11 +15,9 @@ export declare type ReactionSelectorProps<StreamChatGenerics extends DefaultStre
|
|
|
18
15
|
/** An array of the own reaction objects to distinguish own reactions visually */
|
|
19
16
|
own_reactions?: ReactionResponse<StreamChatGenerics>[];
|
|
20
17
|
/** An object that keeps track of the count of each type of reaction on a message */
|
|
21
|
-
reaction_counts?:
|
|
22
|
-
[key: string]: number;
|
|
23
|
-
};
|
|
18
|
+
reaction_counts?: Record<string, number>;
|
|
24
19
|
/** A list of the currently supported reactions on a message */
|
|
25
|
-
reactionOptions?:
|
|
20
|
+
reactionOptions?: ReactionOptions;
|
|
26
21
|
/** If true, adds a CSS class that reverses the horizontal positioning of the selector */
|
|
27
22
|
reverse?: boolean;
|
|
28
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactionSelector.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/ReactionSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ReactionSelector.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/ReactionSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AAKjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,oBAAY,qBAAqB,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,+LAA+L;IAC/L,MAAM,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACxC,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC1D,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,oFAAoF;IACpF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,+DAA+D;IAC/D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAkLF;;GAEG;AACH,eAAO,MAAM,gBAAgB,gIAES,CAAC"}
|
|
@@ -1,29 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import React, { Suspense, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
1
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
2
|
import clsx from 'clsx';
|
|
4
3
|
import { isMutableRef } from './utils/utils';
|
|
5
4
|
import { Avatar as DefaultAvatar } from '../Avatar';
|
|
6
|
-
import { getStrippedEmojiData } from '../Channel/emojiData';
|
|
7
5
|
import { useComponentContext } from '../../context/ComponentContext';
|
|
8
|
-
import { useEmojiContext } from '../../context/EmojiContext';
|
|
9
6
|
import { useMessageContext } from '../../context/MessageContext';
|
|
10
7
|
var UnMemoizedReactionSelector = React.forwardRef(function (props, ref) {
|
|
11
8
|
var _a;
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var _e =
|
|
15
|
-
var
|
|
16
|
-
var _g = emojiConfig || {}, defaultMinimalEmojis = _g.defaultMinimalEmojis, fullEmojiData = _g.emojiData, emojiSetDef = _g.emojiSetDef;
|
|
9
|
+
var propAvatar = props.Avatar, _b = props.detailedView, detailedView = _b === void 0 ? true : _b, propHandleReaction = props.handleReaction, propLatestReactions = props.latest_reactions, propOwnReactions = props.own_reactions, propReactionCounts = props.reaction_counts, propReactionOptions = props.reactionOptions, _c = props.reverse, reverse = _c === void 0 ? false : _c;
|
|
10
|
+
var _d = useComponentContext('ReactionSelector'), contextAvatar = _d.Avatar, contextReactionOptions = _d.reactionOptions;
|
|
11
|
+
var _e = useMessageContext('ReactionSelector'), contextHandleReaction = _e.handleReaction, message = _e.message;
|
|
12
|
+
var reactionOptions = propReactionOptions !== null && propReactionOptions !== void 0 ? propReactionOptions : contextReactionOptions;
|
|
17
13
|
var Avatar = propAvatar || contextAvatar || DefaultAvatar;
|
|
18
14
|
var handleReaction = propHandleReaction || contextHandleReaction;
|
|
19
15
|
var latestReactions = propLatestReactions || (message === null || message === void 0 ? void 0 : message.latest_reactions) || [];
|
|
20
16
|
var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions) || [];
|
|
21
17
|
var reactionCounts = propReactionCounts || (message === null || message === void 0 ? void 0 : message.reaction_counts) || {};
|
|
22
|
-
var
|
|
23
|
-
var
|
|
24
|
-
var emojiData = useMemo(function () { return (reactionsAreCustom ? fullEmojiData : getStrippedEmojiData(fullEmojiData)); }, [fullEmojiData, reactionsAreCustom]);
|
|
25
|
-
var _h = useState(null), tooltipReactionType = _h[0], setTooltipReactionType = _h[1];
|
|
26
|
-
var _j = useState(null), tooltipPositions = _j[0], setTooltipPositions = _j[1];
|
|
18
|
+
var _f = useState(null), tooltipReactionType = _f[0], setTooltipReactionType = _f[1];
|
|
19
|
+
var _g = useState(null), tooltipPositions = _g[0], setTooltipPositions = _g[1];
|
|
27
20
|
var targetRef = useRef(null);
|
|
28
21
|
var tooltipRef = useRef(null);
|
|
29
22
|
var showTooltip = useCallback(function (event, reactionType) {
|
|
@@ -80,17 +73,17 @@ var UnMemoizedReactionSelector = React.forwardRef(function (props, ref) {
|
|
|
80
73
|
} },
|
|
81
74
|
React.createElement("div", { className: 'arrow', style: { left: tooltipPositions === null || tooltipPositions === void 0 ? void 0 : tooltipPositions.arrow } }), (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 :
|
|
82
75
|
_a.map(function (user, i, users) { return (React.createElement("span", { className: 'latest-user-username', key: "key-".concat(i, "-").concat(user) }, "".concat(user).concat(i < users.length - 1 ? ', ' : ''))); }))),
|
|
83
|
-
React.createElement("ul", { className: 'str-chat__message-reactions-list str-chat__message-reactions-options' }, reactionOptions.map(function (
|
|
84
|
-
var
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
React.createElement(
|
|
92
|
-
|
|
93
|
-
|
|
76
|
+
React.createElement("ul", { className: 'str-chat__message-reactions-list str-chat__message-reactions-options' }, reactionOptions.map(function (_a) {
|
|
77
|
+
var Component = _a.Component, reactionName = _a.name, reactionType = _a.type;
|
|
78
|
+
var latestUser = getLatestUserForReactionType(reactionType);
|
|
79
|
+
var count = reactionCounts && reactionCounts[reactionType];
|
|
80
|
+
return (React.createElement("li", { key: reactionType },
|
|
81
|
+
React.createElement("button", { "aria-label": "Select Reaction: ".concat(reactionName || reactionType), className: clsx('str-chat__message-reactions-list-item str-chat__message-reactions-option', {
|
|
82
|
+
'str-chat__message-reactions-option-selected': iHaveReactedWithReaction(reactionType),
|
|
83
|
+
}), "data-text": reactionType, onClick: function (event) { return handleReaction(reactionType, event); } },
|
|
84
|
+
!!count && detailedView && (React.createElement("div", { className: 'latest-user str-chat__message-reactions-last-user', onClick: hideTooltip, onMouseEnter: function (e) { return showTooltip(e, reactionType); }, onMouseLeave: hideTooltip }, latestUser ? (React.createElement(Avatar, { image: latestUser.image, name: latestUser.name, size: 20, user: latestUser })) : (React.createElement("div", { className: 'latest-user-not-found' })))),
|
|
85
|
+
React.createElement("span", { className: 'str-chat__message-reaction-emoji' },
|
|
86
|
+
React.createElement(Component, null)),
|
|
94
87
|
Boolean(count) && detailedView && (React.createElement("span", { className: 'str-chat__message-reactions-list-item__count' }, count || '')))));
|
|
95
88
|
}))));
|
|
96
89
|
});
|
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
import type { NimbleEmojiProps } from 'emoji-mart';
|
|
2
1
|
import type { ReactionResponse } from 'stream-chat';
|
|
3
2
|
import type { ReactEventHandler } from '../Message/types';
|
|
4
3
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
5
|
-
import type {
|
|
4
|
+
import type { ReactionOptions } from './reactionOptions';
|
|
6
5
|
export declare type ReactionsListProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
7
|
-
/** Additional props to be passed to the [NimbleEmoji](https://github.com/missive/emoji-mart/blob/master/src/components/emoji/nimble-emoji.js) component from `emoji-mart` */
|
|
8
|
-
additionalEmojiProps?: Partial<NimbleEmojiProps>;
|
|
9
6
|
/** Custom on click handler for an individual reaction, defaults to `onReactionListClick` from the `MessageContext` */
|
|
10
7
|
onClick?: ReactEventHandler;
|
|
11
8
|
/** An array of the own reaction objects to distinguish own reactions visually */
|
|
12
9
|
own_reactions?: ReactionResponse<StreamChatGenerics>[];
|
|
13
10
|
/** An object that keeps track of the count of each type of reaction on a message */
|
|
14
|
-
reaction_counts?:
|
|
15
|
-
[key: string]: number;
|
|
16
|
-
};
|
|
11
|
+
reaction_counts?: Record<string, number>;
|
|
17
12
|
/** A list of the currently supported reactions on a message */
|
|
18
|
-
reactionOptions?:
|
|
13
|
+
reactionOptions?: ReactionOptions;
|
|
19
14
|
/** An array of the reaction objects to display in the list */
|
|
20
15
|
reactions?: ReactionResponse<StreamChatGenerics>[];
|
|
21
16
|
/** Display the reactions in the list in reverse order, defaults to false */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/ReactionsList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/ReactionsList.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,oBAAY,kBAAkB,CAC5B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,sHAAsH;IACtH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,oFAAoF;IACpF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,+DAA+D;IAC/D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACnD,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAgHF;;GAEG;AACH,eAAO,MAAM,aAAa,yJAAwE,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { __assign, __rest } from "tslib";
|
|
2
|
-
import React, {
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
|
-
import { useEmojiContext } from '../../context/EmojiContext';
|
|
5
4
|
import { useMessageContext } from '../../context/MessageContext';
|
|
6
5
|
import { useChatContext } from '../../context/ChatContext';
|
|
7
6
|
import { useProcessReactions } from './hooks/useProcessReactions';
|
|
@@ -21,9 +20,8 @@ var ButtonWithTooltip = function (_a) {
|
|
|
21
20
|
};
|
|
22
21
|
var UnMemoizedReactionsList = function (props) {
|
|
23
22
|
var onClick = props.onClick, _a = props.reverse, reverse = _a === void 0 ? false : _a, rest = __rest(props, ["onClick", "reverse"]);
|
|
24
|
-
var _b = useEmojiContext('ReactionsList'), Emoji = _b.Emoji, emojiConfig = _b.emojiConfig;
|
|
25
23
|
var onReactionListClick = useMessageContext('ReactionsList').onReactionListClick;
|
|
26
|
-
var
|
|
24
|
+
var _b = useProcessReactions(rest), aggregatedUserNamesByType = _b.aggregatedUserNamesByType, getEmojiByReactionType = _b.getEmojiByReactionType, iHaveReactedWithReaction = _b.iHaveReactedWithReaction, latestReactions = _b.latestReactions, latestReactionTypes = _b.latestReactionTypes, reactionCounts = _b.reactionCounts, supportedReactionsArePresent = _b.supportedReactionsArePresent, totalReactionCount = _b.totalReactionCount;
|
|
27
25
|
if (!latestReactions.length)
|
|
28
26
|
return null;
|
|
29
27
|
if (!supportedReactionsArePresent)
|
|
@@ -33,17 +31,16 @@ var UnMemoizedReactionsList = function (props) {
|
|
|
33
31
|
}), "data-testid": 'reaction-list', onClick: onClick || onReactionListClick, onKeyUp: onClick || onReactionListClick, role: 'figure' },
|
|
34
32
|
React.createElement("ul", { className: 'str-chat__message-reactions' },
|
|
35
33
|
latestReactionTypes.map(function (reactionType) {
|
|
36
|
-
var
|
|
34
|
+
var ReactionOption = getEmojiByReactionType(reactionType);
|
|
37
35
|
var isOwnReaction = iHaveReactedWithReaction(reactionType);
|
|
38
|
-
return
|
|
36
|
+
return (ReactionOption && (React.createElement("li", { className: clsx('str-chat__message-reaction', {
|
|
39
37
|
'str-chat__message-reaction-own': isOwnReaction,
|
|
40
|
-
}), key:
|
|
41
|
-
React.createElement(ButtonWithTooltip, { "aria-label": "Reactions: ".concat(reactionType), title: aggregatedUserNamesByType[reactionType].join(', '), type: 'button' },
|
|
42
|
-
React.createElement(
|
|
43
|
-
React.createElement(
|
|
44
|
-
React.createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 16 }, additionalEmojiProps)))),
|
|
38
|
+
}), key: reactionType },
|
|
39
|
+
React.createElement(ButtonWithTooltip, { "aria-label": "Reactions: ".concat(reactionType), "data-testid": "reactions-list-button-".concat(reactionType), title: aggregatedUserNamesByType[reactionType].join(', '), type: 'button' },
|
|
40
|
+
React.createElement("span", { className: 'str-chat__message-reaction-emoji' },
|
|
41
|
+
React.createElement(ReactionOption.Component, null)),
|
|
45
42
|
"\u00A0",
|
|
46
|
-
React.createElement("span", { className: 'str-chat__message-reaction-count', "data-testclass": 'reaction-list-reaction-count' }, reactionCounts[reactionType]))))
|
|
43
|
+
React.createElement("span", { className: 'str-chat__message-reaction-count', "data-testclass": 'reaction-list-reaction-count' }, reactionCounts[reactionType])))));
|
|
47
44
|
}),
|
|
48
45
|
React.createElement("li", null,
|
|
49
46
|
React.createElement("span", { className: 'str-chat__reaction-list--counter' }, totalReactionCount)))));
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { NimbleEmojiProps } from 'emoji-mart';
|
|
3
2
|
import type { ReactionResponse } from 'stream-chat';
|
|
4
3
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
5
|
-
import type {
|
|
4
|
+
import type { ReactionOptions } from './reactionOptions';
|
|
6
5
|
export declare type SimpleReactionsListProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
7
|
-
/** Additional props to be passed to the [NimbleEmoji](https://github.com/missive/emoji-mart/blob/master/src/components/emoji/nimble-emoji.js) component from `emoji-mart` */
|
|
8
|
-
additionalEmojiProps?: Partial<NimbleEmojiProps>;
|
|
9
6
|
/** Function that adds/removes a reaction on a message (overrides the function stored in `MessageContext`) */
|
|
10
7
|
handleReaction?: (reactionType: string, event: React.BaseSyntheticEvent) => Promise<void>;
|
|
11
8
|
/** An array of the own reaction objects to distinguish own reactions visually */
|
|
@@ -15,7 +12,7 @@ export declare type SimpleReactionsListProps<StreamChatGenerics extends DefaultS
|
|
|
15
12
|
[key: string]: number;
|
|
16
13
|
};
|
|
17
14
|
/** A list of the currently supported reactions on a message */
|
|
18
|
-
reactionOptions?:
|
|
15
|
+
reactionOptions?: ReactionOptions;
|
|
19
16
|
/** An array of the reaction objects to display in the list */
|
|
20
17
|
reactions?: ReactionResponse<StreamChatGenerics>[];
|
|
21
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/SimpleReactionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SimpleReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/SimpleReactionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAsCzD,oBAAY,wBAAwB,CAClC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,6GAA6G;IAC7G,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,oFAAoF;IACpF,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC5C,+DAA+D;IAC/D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;CACpD,CAAC;AA4FF,eAAO,MAAM,mBAAmB,+JAES,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import React, {
|
|
1
|
+
import { __rest } from "tslib";
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { useChatContext } from '../../context/ChatContext';
|
|
5
|
-
import { useEmojiContext } from '../../context/EmojiContext';
|
|
6
5
|
import { useMessageContext } from '../../context/MessageContext';
|
|
7
|
-
import { useEnterLeaveHandlers } from '../Tooltip/hooks';
|
|
8
6
|
import { useProcessReactions } from './hooks/useProcessReactions';
|
|
7
|
+
import { useEnterLeaveHandlers } from '../Tooltip/hooks';
|
|
9
8
|
import { PopperTooltip } from '../Tooltip';
|
|
10
9
|
// todo: merge with ReactionsList/ButtonWithTooltip
|
|
11
10
|
// avoiding breaking change of replacing <span> with <button>
|
|
@@ -23,10 +22,9 @@ var WithTooltip = function (_a) {
|
|
|
23
22
|
};
|
|
24
23
|
var UnMemoizedSimpleReactionsList = function (props) {
|
|
25
24
|
var propHandleReaction = props.handleReaction, rest = __rest(props, ["handleReaction"]);
|
|
26
|
-
var _a = useEmojiContext('SimpleReactionsList'), Emoji = _a.Emoji, emojiConfig = _a.emojiConfig;
|
|
27
25
|
var contextHandleReaction = useMessageContext('SimpleReactionsList').handleReaction;
|
|
28
|
-
var
|
|
29
|
-
var
|
|
26
|
+
var _a = useProcessReactions(rest), getEmojiByReactionType = _a.getEmojiByReactionType, iHaveReactedWithReaction = _a.iHaveReactedWithReaction, latestReactions = _a.latestReactions, latestReactionTypes = _a.latestReactionTypes, supportedReactionsArePresent = _a.supportedReactionsArePresent, totalReactionCount = _a.totalReactionCount;
|
|
27
|
+
var _b = useState(undefined), tooltipReactionType = _b[0], setTooltipReactionType = _b[1];
|
|
30
28
|
var themeVersion = useChatContext('SimpleReactionsList').themeVersion;
|
|
31
29
|
var handleReaction = propHandleReaction || contextHandleReaction;
|
|
32
30
|
if (!latestReactions.length)
|
|
@@ -46,22 +44,21 @@ var UnMemoizedSimpleReactionsList = function (props) {
|
|
|
46
44
|
};
|
|
47
45
|
return (React.createElement("div", { className: 'str-chat__message-reactions-container' },
|
|
48
46
|
React.createElement("ul", { className: 'str-chat__simple-reactions-list str-chat__message-reactions', "data-testid": 'simple-reaction-list', onMouseLeave: function () { return setTooltipReactionType(undefined); } },
|
|
49
|
-
latestReactionTypes.map(function (reactionType
|
|
47
|
+
latestReactionTypes.map(function (reactionType) {
|
|
50
48
|
var _a;
|
|
51
|
-
var
|
|
49
|
+
var ReactionOption = getEmojiByReactionType(reactionType);
|
|
52
50
|
var isOwnReaction = iHaveReactedWithReaction(reactionType);
|
|
53
|
-
var tooltipVisible =
|
|
51
|
+
var tooltipVisible = tooltipReactionType === reactionType;
|
|
54
52
|
var tooltipContent = (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 : _a.join(', ');
|
|
55
|
-
return
|
|
53
|
+
return (ReactionOption && (React.createElement("li", { className: clsx('str-chat__simple-reactions-list-item', {
|
|
56
54
|
'str-chat__message-reaction-own': isOwnReaction,
|
|
57
|
-
}), key:
|
|
55
|
+
}), key: reactionType, onClick: function (event) { return handleReaction(reactionType, event); }, onKeyUp: function (event) { return handleReaction(reactionType, event); } },
|
|
58
56
|
React.createElement(WithTooltip, { onMouseEnter: function () { return setTooltipReactionType(reactionType); }, onMouseLeave: function () { return setTooltipReactionType(undefined); }, title: tooltipContent },
|
|
59
|
-
React.createElement(
|
|
60
|
-
React.createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 13 }, additionalEmojiProps))),
|
|
57
|
+
React.createElement(ReactionOption.Component, null),
|
|
61
58
|
"\u00A0",
|
|
62
59
|
tooltipVisible && themeVersion === '1' && (React.createElement("div", { className: 'str-chat__simple-reactions-list-tooltip' },
|
|
63
60
|
React.createElement("div", { className: 'arrow' }),
|
|
64
|
-
tooltipContent)))))
|
|
61
|
+
tooltipContent))))));
|
|
65
62
|
}),
|
|
66
63
|
React.createElement("li", { className: 'str-chat__simple-reactions-list-item--last-number' }, totalReactionCount))));
|
|
67
64
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type SpriteImageProps = {
|
|
3
|
+
columns: number;
|
|
4
|
+
position: [number, number];
|
|
5
|
+
rows: number;
|
|
6
|
+
spriteUrl: string;
|
|
7
|
+
fallback?: React.ReactNode;
|
|
8
|
+
height?: number;
|
|
9
|
+
width?: number;
|
|
10
|
+
};
|
|
11
|
+
export declare const SpriteImage: ({ columns, fallback, height, position, rows, spriteUrl, width, }: SpriteImageProps) => JSX.Element;
|
|
12
|
+
//# sourceMappingURL=SpriteImage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpriteImage.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/SpriteImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,oBAAY,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,WAAW,qEAQrB,gBAAgB,gBAgClB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { getImageDimensions } from './utils/utils';
|
|
3
|
+
export var SpriteImage = function (_a) {
|
|
4
|
+
var columns = _a.columns, fallback = _a.fallback, height = _a.height, position = _a.position, rows = _a.rows, spriteUrl = _a.spriteUrl, width = _a.width;
|
|
5
|
+
var _b = useState([0, 0]), _c = _b[0], spriteWidth = _c[0], spriteHeight = _c[1], setSpriteDimensions = _b[1];
|
|
6
|
+
useEffect(function () {
|
|
7
|
+
getImageDimensions(spriteUrl).then(setSpriteDimensions).catch(console.error);
|
|
8
|
+
}, [spriteUrl]);
|
|
9
|
+
var x = position[0], y = position[1];
|
|
10
|
+
var spriteItemWidth = spriteWidth / columns;
|
|
11
|
+
var spriteItemHeight = spriteHeight / rows;
|
|
12
|
+
var resizeRatio = 1;
|
|
13
|
+
if (!width && height)
|
|
14
|
+
resizeRatio = height / spriteItemHeight;
|
|
15
|
+
if (width && !height)
|
|
16
|
+
resizeRatio = width / spriteItemWidth;
|
|
17
|
+
if (resizeRatio === Infinity)
|
|
18
|
+
resizeRatio = 1;
|
|
19
|
+
if (!spriteHeight || !spriteWidth)
|
|
20
|
+
return React.createElement(React.Fragment, null, fallback);
|
|
21
|
+
return (React.createElement("div", { "data-testid": 'sprite-image', style: {
|
|
22
|
+
backgroundImage: "url('".concat(spriteUrl, "')"),
|
|
23
|
+
backgroundPosition: "".concat(x * (100 / (columns - 1)), "% ").concat(y * (100 / (rows - 1)), "%"),
|
|
24
|
+
backgroundSize: "".concat(columns * 100, "% ").concat(rows * 100, "%"),
|
|
25
|
+
height: height !== null && height !== void 0 ? height : spriteItemHeight * resizeRatio,
|
|
26
|
+
width: width !== null && width !== void 0 ? width : spriteItemWidth * resizeRatio,
|
|
27
|
+
} }));
|
|
28
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SpriteImageProps } from './SpriteImage';
|
|
3
|
+
import type { Readable } from '../../types/types';
|
|
4
|
+
declare const StreamSpriteEmojiPositions: {
|
|
5
|
+
angry: number[];
|
|
6
|
+
haha: number[];
|
|
7
|
+
like: number[];
|
|
8
|
+
love: number[];
|
|
9
|
+
sad: number[];
|
|
10
|
+
wow: number[];
|
|
11
|
+
};
|
|
12
|
+
declare type StreamEmojiType = keyof typeof StreamSpriteEmojiPositions;
|
|
13
|
+
export declare const StreamEmoji: ({ fallback, type, }: {
|
|
14
|
+
type: StreamEmojiType;
|
|
15
|
+
fallback?: React.ReactNode;
|
|
16
|
+
}) => JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=StreamEmoji.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamEmoji.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/StreamEmoji.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAe,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAA,MAAM,0BAA0B;;;;;;;CAO/B,CAAC;AAEF,aAAK,eAAe,GAAG,MAAM,OAAO,0BAA0B,CAAC;AAI/D,eAAO,MAAM,WAAW;UAGJ,eAAe;;iBAYlC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SpriteImage } from './SpriteImage';
|
|
3
|
+
var StreamSpriteEmojiPositions = {
|
|
4
|
+
angry: [1, 1],
|
|
5
|
+
haha: [1, 0],
|
|
6
|
+
like: [0, 0],
|
|
7
|
+
love: [1, 2],
|
|
8
|
+
sad: [0, 1],
|
|
9
|
+
wow: [0, 2],
|
|
10
|
+
};
|
|
11
|
+
var STREAM_SPRITE_URL = 'https://getstream.imgix.net/images/emoji-sprite.png';
|
|
12
|
+
export var StreamEmoji = function (_a) {
|
|
13
|
+
var fallback = _a.fallback, type = _a.type;
|
|
14
|
+
var position = StreamSpriteEmojiPositions[type];
|
|
15
|
+
return (React.createElement(SpriteImage, { columns: 2, fallback: fallback, height: 18, position: position, rows: 3, spriteUrl: STREAM_SPRITE_URL }));
|
|
16
|
+
};
|
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
import { ReactionEmoji } from '../../Channel/emojiData';
|
|
2
|
-
import type { EmojiContextValue } from '../../../context/EmojiContext';
|
|
3
1
|
import type { ReactionsListProps } from '../ReactionsList';
|
|
4
2
|
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
5
|
-
declare type SharedReactionListProps = '
|
|
6
|
-
declare type UseProcessReactionsParams = Pick<ReactionsListProps, SharedReactionListProps
|
|
3
|
+
declare type SharedReactionListProps = 'own_reactions' | 'reaction_counts' | 'reactionOptions' | 'reactions';
|
|
4
|
+
declare type UseProcessReactionsParams = Pick<ReactionsListProps, SharedReactionListProps>;
|
|
7
5
|
export declare const useProcessReactions: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(params: UseProcessReactionsParams) => {
|
|
8
|
-
additionalEmojiProps: import("../../../context").EmojiSetDef | Partial<import("emoji-mart").NimbleEmojiProps>;
|
|
9
6
|
aggregatedUserNamesByType: Record<string, string[]>;
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
getEmojiByReactionType: (reactionType: string) => {
|
|
8
|
+
Component: import("react").ComponentType<{}>;
|
|
9
|
+
type: string;
|
|
10
|
+
name?: string | undefined;
|
|
11
|
+
} | undefined;
|
|
12
12
|
iHaveReactedWithReaction: (reactionType: string) => import("stream-chat").ReactionResponse<DefaultStreamChatGenerics> | undefined;
|
|
13
13
|
latestReactions: import("stream-chat").ReactionResponse<DefaultStreamChatGenerics>[];
|
|
14
14
|
latestReactionTypes: string[];
|
|
15
|
-
reactionCounts:
|
|
16
|
-
[key: string]: number;
|
|
17
|
-
};
|
|
15
|
+
reactionCounts: Record<string, number>;
|
|
18
16
|
supportedReactionsArePresent: boolean;
|
|
19
17
|
totalReactionCount: number;
|
|
20
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProcessReactions.d.ts","sourceRoot":"","sources":["../../../../src/components/Reactions/hooks/useProcessReactions.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useProcessReactions.d.ts","sourceRoot":"","sources":["../../../../src/components/Reactions/hooks/useProcessReactions.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,aAAK,uBAAuB,GACxB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,WAAW,CAAC;AAEhB,aAAK,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;AAEnF,eAAO,MAAM,mBAAmB,6FAGtB,yBAAyB;;2CAwBhB,MAAM;;;;;6CALN,MAAM;;;;;;CAgExB,CAAC"}
|