stream-chat-react 11.15.2 → 11.16.0
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/{Window-847d5d88.js → Window-996f3be8.js} +61 -37
- package/dist/browser.full-bundle.js +62 -38
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +4 -4
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Attachment/hooks/useAudioController.d.ts.map +1 -1
- package/dist/components/Attachment/hooks/useAudioController.js +1 -0
- package/dist/components/Emojis/index.cjs.js +1 -1
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.d.ts.map +1 -1
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.js +11 -6
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.d.ts.map +1 -1
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.js +7 -7
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.d.ts.map +1 -1
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.js +1 -1
- package/dist/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useReactionHandler.js +14 -7
- package/dist/components/Message/utils.d.ts.map +1 -1
- package/dist/components/Message/utils.js +4 -1
- package/dist/components/MessageInput/icons.d.ts.map +1 -1
- package/dist/components/MessageInput/icons.js +2 -2
- package/dist/components/MessageList/utils.js +2 -2
- package/dist/components/Reactions/ReactionSelector.d.ts +7 -2
- package/dist/components/Reactions/ReactionSelector.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionSelector.js +4 -3
- package/dist/components/Reactions/ReactionsList.d.ts +7 -2
- package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
- package/dist/components/Reactions/SimpleReactionsList.d.ts +8 -5
- package/dist/components/Reactions/SimpleReactionsList.d.ts.map +1 -1
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts +1 -1
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -1
- package/dist/components/Reactions/hooks/useProcessReactions.js +16 -9
- package/dist/components/Reactions/types.d.ts +3 -0
- package/dist/components/Reactions/types.d.ts.map +1 -1
- package/dist/index.cjs.js +2 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
|
@@ -1549,6 +1549,7 @@ var useAudioController = function (_a) {
|
|
|
1549
1549
|
return;
|
|
1550
1550
|
try {
|
|
1551
1551
|
audioRef.current.pause();
|
|
1552
|
+
setIsPlaying(false);
|
|
1552
1553
|
}
|
|
1553
1554
|
catch (e) {
|
|
1554
1555
|
registerError(new Error(t('Failed to play the recording')));
|
|
@@ -36853,7 +36854,10 @@ var areMessageUIPropsEqual = function (prevProps, nextProps) {
|
|
|
36853
36854
|
}
|
|
36854
36855
|
return areMessagesEqual(prevMessage, nextMessage);
|
|
36855
36856
|
};
|
|
36856
|
-
var messageHasReactions = function (message) { var _a; return Object.values((_a = message === null || message === void 0 ? void 0 : message.
|
|
36857
|
+
var messageHasReactions = function (message) { var _a; return Object.values((_a = message === null || message === void 0 ? void 0 : message.reaction_groups) !== null && _a !== void 0 ? _a : {}).some(function (_a) {
|
|
36858
|
+
var count = _a.count;
|
|
36859
|
+
return count > 0;
|
|
36860
|
+
}); };
|
|
36857
36861
|
var messageHasAttachments = function (message) { return !!(message === null || message === void 0 ? void 0 : message.attachments) && !!message.attachments.length; };
|
|
36858
36862
|
var getImages = function (message) {
|
|
36859
36863
|
if (!(message === null || message === void 0 ? void 0 : message.attachments)) {
|
|
@@ -39336,9 +39340,9 @@ var MicIcon = function () { return (React__default["default"].createElement("svg
|
|
|
39336
39340
|
React__default["default"].createElement("path", { d: 'M12 9.5C12 12.26 9.76 14.5 7 14.5C4.24 14.5 2 12.26 2 9.5H0C0 13.03 2.61 15.93 6 16.42V19.5H8V16.42C11.39 15.93 14 13.03 14 9.5H12Z' }))); };
|
|
39337
39341
|
var BinIcon = function () { return (React__default["default"].createElement("svg", { fill: 'currentColor', viewBox: '0 0 32 32', xmlns: 'http://www.w3.org/2000/svg' },
|
|
39338
39342
|
React__default["default"].createElement("path", { d: 'M8.00033 25.3333C8.00033 26.8 9.20033 28 10.667 28H21.3337C22.8003 28 24.0003 26.8 24.0003 25.3333V12C24.0003 10.5333 22.8003 9.33333 21.3337 9.33333H10.667C9.20033 9.33333 8.00033 10.5333 8.00033 12V25.3333ZM24.0003 5.33333H20.667L19.7203 4.38667C19.4803 4.14667 19.1337 4 18.787 4H13.2137C12.867 4 12.5203 4.14667 12.2803 4.38667L11.3337 5.33333H8.00033C7.26699 5.33333 6.66699 5.93333 6.66699 6.66667C6.66699 7.4 7.26699 8 8.00033 8H24.0003C24.7337 8 25.3337 7.4 25.3337 6.66667C25.3337 5.93333 24.7337 5.33333 24.0003 5.33333Z' }))); };
|
|
39339
|
-
var PauseIcon = function () { return (React__default["default"].createElement("svg", { fill: 'currentColor', viewBox: '0 0 16 20', xmlns: 'http://www.w3.org/2000/svg' },
|
|
39343
|
+
var PauseIcon = function () { return (React__default["default"].createElement("svg", { "data-testid": 'str-chat__pause-icon', fill: 'currentColor', viewBox: '0 0 16 20', xmlns: 'http://www.w3.org/2000/svg' },
|
|
39340
39344
|
React__default["default"].createElement("path", { d: 'M0 19.3333H5.33333V0.666626H0V19.3333ZM10.6667 0.666626V19.3333H16V0.666626H10.6667Z' }))); };
|
|
39341
|
-
var PlayIcon = function () { return (React__default["default"].createElement("svg", { fill: 'currentColor', viewBox: '0 0 14 18', xmlns: 'http://www.w3.org/2000/svg' },
|
|
39345
|
+
var PlayIcon = function () { return (React__default["default"].createElement("svg", { "data-testid": 'str-chat__play-icon', fill: 'currentColor', viewBox: '0 0 14 18', xmlns: 'http://www.w3.org/2000/svg' },
|
|
39342
39346
|
React__default["default"].createElement("path", { d: 'M0.236328 2.09338V15.9067C0.236328 16.9601 1.39633 17.6001 2.28966 17.0267L13.143 10.1201C13.9697 9.60005 13.9697 8.40005 13.143 7.86672L2.28966 0.973385C1.39633 0.400051 0.236328 1.04005 0.236328 2.09338Z' }))); };
|
|
39343
39347
|
var CheckSignIcon = function () { return (React__default["default"].createElement("svg", { fill: 'currentColor', viewBox: '0 0 18 14', xmlns: 'http://www.w3.org/2000/svg' },
|
|
39344
39348
|
React__default["default"].createElement("path", { d: 'M5.79457 10.875L2.32457 7.40502C1.93457 7.01502 1.30457 7.01502 0.91457 7.40502C0.52457 7.79502 0.52457 8.42502 0.91457 8.81502L5.09457 12.995C5.48457 13.385 6.11457 13.385 6.50457 12.995L17.0846 2.41502C17.4746 2.02502 17.4746 1.39502 17.0846 1.00502C16.6946 0.615024 16.0646 0.615024 15.6746 1.00502L5.79457 10.875Z' }))); };
|
|
@@ -39380,7 +39384,7 @@ var AudioRecordingPreview = function (_a) {
|
|
|
39380
39384
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
39381
39385
|
React__default["default"].createElement("audio", { ref: audioRef },
|
|
39382
39386
|
React__default["default"].createElement("source", { src: props.src, type: mimeType })),
|
|
39383
|
-
React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__toggle-playback-button', onClick: togglePlay }, isPlaying ? React__default["default"].createElement(PauseIcon, null) : React__default["default"].createElement(PlayIcon, null)),
|
|
39387
|
+
React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__toggle-playback-button', "data-testid": 'audio-recording-preview-toggle-play-btn', onClick: togglePlay }, isPlaying ? React__default["default"].createElement(PauseIcon, null) : React__default["default"].createElement(PlayIcon, null)),
|
|
39384
39388
|
React__default["default"].createElement(RecordingTimer, { durationSeconds: displayedDuration }),
|
|
39385
39389
|
React__default["default"].createElement("div", { className: 'str-chat__wave-progress-bar__track-container' },
|
|
39386
39390
|
React__default["default"].createElement(WaveProgressBar, { progress: progress, seek: seek, waveformData: waveformData || [] }))));
|
|
@@ -39430,11 +39434,12 @@ var AudioRecordingWaveform = function (_a) {
|
|
|
39430
39434
|
}, [recorder]);
|
|
39431
39435
|
if (!recorder)
|
|
39432
39436
|
return null;
|
|
39433
|
-
return (React__default["default"].createElement("div", { className: 'str-
|
|
39434
|
-
|
|
39435
|
-
|
|
39436
|
-
|
|
39437
|
-
|
|
39437
|
+
return (React__default["default"].createElement("div", { className: 'str-chat__waveform-box-container' },
|
|
39438
|
+
React__default["default"].createElement("div", { className: 'str-chat__audio_recorder__waveform-box' }, amplitudes.slice(-maxDataPointsDrawn).map(function (amplitude, i) { return (React__default["default"].createElement("div", { className: 'str-chat__wave-progress-bar__amplitude-bar', key: "amplitude-".concat(i, "-voice-recording"), style: {
|
|
39439
|
+
'--str-chat__wave-progress-bar__amplitude-bar-height': amplitude
|
|
39440
|
+
? amplitude * 100 + '%'
|
|
39441
|
+
: '0%',
|
|
39442
|
+
} })); }))));
|
|
39438
39443
|
};
|
|
39439
39444
|
var AudioRecordingInProgress = function () {
|
|
39440
39445
|
var _a = useTimeElapsed(), secondsElapsed = _a.secondsElapsed, startCounter = _a.startCounter, stopCounter = _a.stopCounter;
|
|
@@ -39456,8 +39461,7 @@ var AudioRecordingInProgress = function () {
|
|
|
39456
39461
|
}, [recorder, startCounter, stopCounter]);
|
|
39457
39462
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
39458
39463
|
React__default["default"].createElement(RecordingTimer, { durationSeconds: secondsElapsed }),
|
|
39459
|
-
React__default["default"].createElement(
|
|
39460
|
-
React__default["default"].createElement(AudioRecordingWaveform, null))));
|
|
39464
|
+
React__default["default"].createElement(AudioRecordingWaveform, null)));
|
|
39461
39465
|
};
|
|
39462
39466
|
|
|
39463
39467
|
var Subscription = /** @class */ (function () {
|
|
@@ -52450,18 +52454,23 @@ var AudioRecorder = function () {
|
|
|
52450
52454
|
var _a, _b;
|
|
52451
52455
|
var _c = useMessageInputContext().recordingController, completeRecording = _c.completeRecording, recorder = _c.recorder, recording = _c.recording, recordingState = _c.recordingState;
|
|
52452
52456
|
var isUploadingFile = ((_a = recording === null || recording === void 0 ? void 0 : recording.$internal) === null || _a === void 0 ? void 0 : _a.uploadState) === 'uploading';
|
|
52457
|
+
var state = React.useMemo(function () { return ({
|
|
52458
|
+
paused: recordingState === exports.MediaRecordingState.PAUSED,
|
|
52459
|
+
recording: recordingState === exports.MediaRecordingState.RECORDING,
|
|
52460
|
+
stopped: recordingState === exports.MediaRecordingState.STOPPED,
|
|
52461
|
+
}); }, [recordingState]);
|
|
52453
52462
|
if (!recorder)
|
|
52454
52463
|
return null;
|
|
52455
52464
|
return (React__default["default"].createElement("div", { className: 'str-chat__audio_recorder-container' },
|
|
52456
52465
|
React__default["default"].createElement("div", { className: 'str-chat__audio_recorder', "data-testid": 'audio-recorder' },
|
|
52457
|
-
React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__cancel-button', disabled: isUploadingFile, onClick: recorder.cancel },
|
|
52466
|
+
React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__cancel-button', "data-testid": 'cancel-recording-audio-button', disabled: isUploadingFile, onClick: recorder.cancel },
|
|
52458
52467
|
React__default["default"].createElement(BinIcon, null)),
|
|
52459
|
-
(recording === null || recording === void 0 ? void 0 : recording.asset_url) ? (React__default["default"].createElement(AudioRecordingPreview, { durationSeconds: (_b = recording.duration) !== null && _b !== void 0 ? _b : 0, mimeType: recording.mime_type, src: recording.asset_url, waveformData: recording.waveform_data })) : (React__default["default"].createElement(AudioRecordingInProgress, null)),
|
|
52460
|
-
|
|
52468
|
+
state.stopped && (recording === null || recording === void 0 ? void 0 : recording.asset_url) ? (React__default["default"].createElement(AudioRecordingPreview, { durationSeconds: (_b = recording.duration) !== null && _b !== void 0 ? _b : 0, mimeType: recording.mime_type, src: recording.asset_url, waveformData: recording.waveform_data })) : state.paused || state.recording ? (React__default["default"].createElement(AudioRecordingInProgress, null)) : null,
|
|
52469
|
+
state.paused && (React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__resume-recording-button', onClick: recorder.resume },
|
|
52461
52470
|
React__default["default"].createElement(MicIcon, null))),
|
|
52462
|
-
|
|
52471
|
+
state.recording && (React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__pause-recording-button', "data-testid": 'pause-recording-audio-button', onClick: recorder.pause },
|
|
52463
52472
|
React__default["default"].createElement(PauseIcon, null))),
|
|
52464
|
-
|
|
52473
|
+
state.stopped ? (React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__complete-button', "data-testid": 'audio-recorder-complete-button', disabled: isUploadingFile, onClick: completeRecording }, isUploadingFile ? React__default["default"].createElement(LoadingIndicatorIcon, null) : React__default["default"].createElement(SendIconV2, null))) : (React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__stop-button', "data-testid": 'audio-recorder-stop-button', onClick: recorder.stop },
|
|
52465
52474
|
React__default["default"].createElement(CheckSignIcon, null))))));
|
|
52466
52475
|
};
|
|
52467
52476
|
|
|
@@ -54467,7 +54476,7 @@ var getImageDimensions = function (source) {
|
|
|
54467
54476
|
|
|
54468
54477
|
var UnMemoizedReactionSelector = React__default["default"].forwardRef(function (props, ref) {
|
|
54469
54478
|
var _a;
|
|
54470
|
-
var propAvatar = props.Avatar, _b = props.detailedView, detailedView = _b === void 0 ? true : _b, propHandleReaction = props.handleReaction, propLatestReactions = props.latest_reactions, propOwnReactions = props.own_reactions,
|
|
54479
|
+
var propAvatar = props.Avatar, _b = props.detailedView, detailedView = _b === void 0 ? true : _b, propHandleReaction = props.handleReaction, propLatestReactions = props.latest_reactions, propOwnReactions = props.own_reactions, propReactionGroups = props.reaction_groups, propReactionOptions = props.reactionOptions, _c = props.reverse, reverse = _c === void 0 ? false : _c;
|
|
54471
54480
|
var _d = useComponentContext('ReactionSelector'), contextAvatar = _d.Avatar, contextReactionOptions = _d.reactionOptions;
|
|
54472
54481
|
var _e = useMessageContext('ReactionSelector'), contextHandleReaction = _e.handleReaction, message = _e.message;
|
|
54473
54482
|
var reactionOptions = propReactionOptions !== null && propReactionOptions !== void 0 ? propReactionOptions : contextReactionOptions;
|
|
@@ -54475,7 +54484,7 @@ var UnMemoizedReactionSelector = React__default["default"].forwardRef(function (
|
|
|
54475
54484
|
var handleReaction = propHandleReaction || contextHandleReaction;
|
|
54476
54485
|
var latestReactions = propLatestReactions || (message === null || message === void 0 ? void 0 : message.latest_reactions) || [];
|
|
54477
54486
|
var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions) || [];
|
|
54478
|
-
var
|
|
54487
|
+
var reactionGroups = propReactionGroups || (message === null || message === void 0 ? void 0 : message.reaction_groups) || {};
|
|
54479
54488
|
var _f = React.useState(null), tooltipReactionType = _f[0], setTooltipReactionType = _f[1];
|
|
54480
54489
|
var _g = React.useState(null), tooltipPositions = _g[0], setTooltipPositions = _g[1];
|
|
54481
54490
|
var targetRef = React.useRef(null);
|
|
@@ -54535,9 +54544,10 @@ var UnMemoizedReactionSelector = React__default["default"].forwardRef(function (
|
|
|
54535
54544
|
React__default["default"].createElement("div", { className: 'arrow', style: { left: tooltipPositions === null || tooltipPositions === void 0 ? void 0 : tooltipPositions.arrow } }), (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 :
|
|
54536
54545
|
_a.map(function (user, i, users) { return (React__default["default"].createElement("span", { className: 'latest-user-username', key: "key-".concat(i, "-").concat(user) }, "".concat(user).concat(i < users.length - 1 ? ', ' : ''))); }))),
|
|
54537
54546
|
React__default["default"].createElement("ul", { className: 'str-chat__message-reactions-list str-chat__message-reactions-options' }, reactionOptions.map(function (_a) {
|
|
54547
|
+
var _b, _c;
|
|
54538
54548
|
var Component = _a.Component, reactionName = _a.name, reactionType = _a.type;
|
|
54539
54549
|
var latestUser = getLatestUserForReactionType(reactionType);
|
|
54540
|
-
var count =
|
|
54550
|
+
var count = (_c = (_b = reactionGroups[reactionType]) === null || _b === void 0 ? void 0 : _b.count) !== null && _c !== void 0 ? _c : 0;
|
|
54541
54551
|
return (React__default["default"].createElement("li", { key: reactionType },
|
|
54542
54552
|
React__default["default"].createElement("button", { "aria-label": "Select Reaction: ".concat(reactionName || reactionType), className: clsx('str-chat__message-reactions-list-item str-chat__message-reactions-option', {
|
|
54543
54553
|
'str-chat__message-reactions-option-selected': iHaveReactedWithReaction(reactionType),
|
|
@@ -54554,18 +54564,21 @@ var UnMemoizedReactionSelector = React__default["default"].forwardRef(function (
|
|
|
54554
54564
|
var ReactionSelector = React__default["default"].memo(UnMemoizedReactionSelector);
|
|
54555
54565
|
|
|
54556
54566
|
var defaultReactionsSort = function (a, b) {
|
|
54567
|
+
if (a.firstReactionAt && b.firstReactionAt) {
|
|
54568
|
+
return +a.firstReactionAt - +b.firstReactionAt;
|
|
54569
|
+
}
|
|
54557
54570
|
return a.reactionType.localeCompare(b.reactionType, 'en');
|
|
54558
54571
|
};
|
|
54559
54572
|
var useProcessReactions = function (params) {
|
|
54560
54573
|
var _a;
|
|
54561
|
-
var propOwnReactions = params.own_reactions,
|
|
54574
|
+
var propOwnReactions = params.own_reactions, propReactionGroups = params.reaction_groups, propReactionOptions = params.reactionOptions, propReactions = params.reactions, propSortReactions = params.sortReactions;
|
|
54562
54575
|
var _b = useMessageContext('useProcessReactions'), message = _b.message, contextSortReactions = _b.sortReactions;
|
|
54563
54576
|
var contextReactionOptions = useComponentContext('useProcessReactions').reactionOptions;
|
|
54564
54577
|
var reactionOptions = propReactionOptions !== null && propReactionOptions !== void 0 ? propReactionOptions : contextReactionOptions;
|
|
54565
54578
|
var sortReactions = (_a = propSortReactions !== null && propSortReactions !== void 0 ? propSortReactions : contextSortReactions) !== null && _a !== void 0 ? _a : defaultReactionsSort;
|
|
54566
54579
|
var latestReactions = propReactions || message.latest_reactions;
|
|
54567
54580
|
var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions);
|
|
54568
|
-
var
|
|
54581
|
+
var reactionGroups = propReactionGroups || (message === null || message === void 0 ? void 0 : message.reaction_groups);
|
|
54569
54582
|
var isOwnReaction = React.useCallback(function (reactionType) { var _a; return (_a = ownReactions === null || ownReactions === void 0 ? void 0 : ownReactions.some(function (reaction) { return reaction.type === reactionType; })) !== null && _a !== void 0 ? _a : false; }, [ownReactions]);
|
|
54570
54583
|
var getEmojiByReactionType = React.useCallback(function (reactionType) { var _a, _b; return (_b = (_a = reactionOptions.find(function (_a) {
|
|
54571
54584
|
var type = _a.type;
|
|
@@ -54586,21 +54599,25 @@ var useProcessReactions = function (params) {
|
|
|
54586
54599
|
})) !== null && _a !== void 0 ? _a : [];
|
|
54587
54600
|
}, [latestReactions]);
|
|
54588
54601
|
var existingReactions = React.useMemo(function () {
|
|
54589
|
-
if (!
|
|
54602
|
+
if (!reactionGroups) {
|
|
54590
54603
|
return [];
|
|
54591
54604
|
}
|
|
54592
|
-
var unsortedReactions = Object.entries(
|
|
54593
|
-
var reactionType = _a[0],
|
|
54594
|
-
if (
|
|
54605
|
+
var unsortedReactions = Object.entries(reactionGroups).flatMap(function (_a) {
|
|
54606
|
+
var reactionType = _a[0], _b = _a[1], count = _b.count, first_reaction_at = _b.first_reaction_at, last_reaction_at = _b.last_reaction_at;
|
|
54607
|
+
if (count === 0 || !isSupportedReaction(reactionType)) {
|
|
54595
54608
|
return [];
|
|
54596
54609
|
}
|
|
54610
|
+
var latestReactedUserNames = getLatestReactedUserNames(reactionType);
|
|
54597
54611
|
return [
|
|
54598
54612
|
{
|
|
54599
54613
|
EmojiComponent: getEmojiByReactionType(reactionType),
|
|
54614
|
+
firstReactionAt: first_reaction_at ? new Date(first_reaction_at) : null,
|
|
54600
54615
|
isOwnReaction: isOwnReaction(reactionType),
|
|
54601
|
-
|
|
54602
|
-
|
|
54616
|
+
lastReactionAt: last_reaction_at ? new Date(last_reaction_at) : null,
|
|
54617
|
+
latestReactedUserNames: latestReactedUserNames,
|
|
54618
|
+
reactionCount: count,
|
|
54603
54619
|
reactionType: reactionType,
|
|
54620
|
+
unlistedReactedUserCount: count - latestReactedUserNames.length,
|
|
54604
54621
|
},
|
|
54605
54622
|
];
|
|
54606
54623
|
});
|
|
@@ -54610,7 +54627,7 @@ var useProcessReactions = function (params) {
|
|
|
54610
54627
|
getLatestReactedUserNames,
|
|
54611
54628
|
isOwnReaction,
|
|
54612
54629
|
isSupportedReaction,
|
|
54613
|
-
|
|
54630
|
+
reactionGroups,
|
|
54614
54631
|
sortReactions,
|
|
54615
54632
|
]);
|
|
54616
54633
|
var hasReactions = existingReactions.length > 0;
|
|
@@ -55064,25 +55081,32 @@ var useReactionHandler = function (message) {
|
|
|
55064
55081
|
var client = useChatContext('useReactionHandler').client;
|
|
55065
55082
|
var createMessagePreview = React.useCallback(function (add, reaction, message) {
|
|
55066
55083
|
var _a, _b;
|
|
55067
|
-
var
|
|
55084
|
+
var newReactionGroups = (message === null || message === void 0 ? void 0 : message.reaction_groups) || {};
|
|
55068
55085
|
var reactionType = reaction.type;
|
|
55069
|
-
var hasReaction = !!
|
|
55086
|
+
var hasReaction = !!newReactionGroups[reactionType];
|
|
55070
55087
|
if (add) {
|
|
55071
|
-
|
|
55088
|
+
var timestamp = new Date().toISOString();
|
|
55089
|
+
newReactionGroups[reactionType] = hasReaction
|
|
55090
|
+
? exports.__assign(exports.__assign({}, newReactionGroups[reactionType]), { count: newReactionGroups[reactionType].count + 1 }) : {
|
|
55091
|
+
count: 1,
|
|
55092
|
+
first_reaction_at: timestamp,
|
|
55093
|
+
last_reaction_at: timestamp,
|
|
55094
|
+
sum_scores: 1,
|
|
55095
|
+
};
|
|
55072
55096
|
}
|
|
55073
55097
|
else {
|
|
55074
|
-
if (hasReaction &&
|
|
55075
|
-
|
|
55098
|
+
if (hasReaction && newReactionGroups[reactionType].count > 1) {
|
|
55099
|
+
newReactionGroups[reactionType] = exports.__assign(exports.__assign({}, newReactionGroups[reactionType]), { count: newReactionGroups[reactionType].count - 1 });
|
|
55076
55100
|
}
|
|
55077
55101
|
else {
|
|
55078
|
-
delete
|
|
55102
|
+
delete newReactionGroups[reactionType];
|
|
55079
55103
|
}
|
|
55080
55104
|
}
|
|
55081
55105
|
var newReactions = add
|
|
55082
55106
|
? __spreadArray([reaction], ((message === null || message === void 0 ? void 0 : message.latest_reactions) || []), true) : (_a = message.latest_reactions) === null || _a === void 0 ? void 0 : _a.filter(function (item) { return !(item.type === reaction.type && item.user_id === reaction.user_id); });
|
|
55083
55107
|
var newOwnReactions = add
|
|
55084
55108
|
? __spreadArray([reaction], ((message === null || message === void 0 ? void 0 : message.own_reactions) || []), true) : (_b = message === null || message === void 0 ? void 0 : message.own_reactions) === null || _b === void 0 ? void 0 : _b.filter(function (item) { return item.type !== reaction.type; });
|
|
55085
|
-
return exports.__assign(exports.__assign({}, message), { latest_reactions: newReactions || message.latest_reactions, own_reactions: newOwnReactions,
|
|
55109
|
+
return exports.__assign(exports.__assign({}, message), { latest_reactions: newReactions || message.latest_reactions, own_reactions: newOwnReactions, reaction_groups: newReactionGroups });
|
|
55086
55110
|
},
|
|
55087
55111
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55088
55112
|
[client.user, client.userID]);
|
|
@@ -55891,7 +55915,7 @@ var getGroupStyles = function (message, previousMessage, nextMessage, noGroupByU
|
|
|
55891
55915
|
((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_d = previousMessage.user) === null || _d === void 0 ? void 0 : _d.id) ||
|
|
55892
55916
|
previousMessage.type === 'error' ||
|
|
55893
55917
|
previousMessage.deleted_at ||
|
|
55894
|
-
(message.
|
|
55918
|
+
(message.reaction_groups && Object.keys(message.reaction_groups).length > 0) ||
|
|
55895
55919
|
isMessageEdited(previousMessage);
|
|
55896
55920
|
var isBottomMessage = !nextMessage ||
|
|
55897
55921
|
nextMessage.customType === CUSTOM_MESSAGE_TYPE.date ||
|
|
@@ -55901,7 +55925,7 @@ var getGroupStyles = function (message, previousMessage, nextMessage, noGroupByU
|
|
|
55901
55925
|
((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_g = nextMessage.user) === null || _g === void 0 ? void 0 : _g.id) ||
|
|
55902
55926
|
nextMessage.type === 'error' ||
|
|
55903
55927
|
nextMessage.deleted_at ||
|
|
55904
|
-
(nextMessage.
|
|
55928
|
+
(nextMessage.reaction_groups && Object.keys(nextMessage.reaction_groups).length > 0) ||
|
|
55905
55929
|
isMessageEdited(message);
|
|
55906
55930
|
if (!isTopMessage && !isBottomMessage) {
|
|
55907
55931
|
if (message.deleted_at || message.type === 'error')
|
|
@@ -10564,6 +10564,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
|
|
|
10564
10564
|
return;
|
|
10565
10565
|
try {
|
|
10566
10566
|
audioRef.current.pause();
|
|
10567
|
+
setIsPlaying(false);
|
|
10567
10568
|
}
|
|
10568
10569
|
catch (e) {
|
|
10569
10570
|
registerError(new Error(t('Failed to play the recording')));
|
|
@@ -48862,7 +48863,10 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
|
|
|
48862
48863
|
}
|
|
48863
48864
|
return areMessagesEqual(prevMessage, nextMessage);
|
|
48864
48865
|
};
|
|
48865
|
-
var messageHasReactions = function (message) { var _a; return Object.values((_a = message === null || message === void 0 ? void 0 : message.
|
|
48866
|
+
var messageHasReactions = function (message) { var _a; return Object.values((_a = message === null || message === void 0 ? void 0 : message.reaction_groups) !== null && _a !== void 0 ? _a : {}).some(function (_a) {
|
|
48867
|
+
var count = _a.count;
|
|
48868
|
+
return count > 0;
|
|
48869
|
+
}); };
|
|
48866
48870
|
var messageHasAttachments = function (message) { return !!(message === null || message === void 0 ? void 0 : message.attachments) && !!message.attachments.length; };
|
|
48867
48871
|
var getImages = function (message) {
|
|
48868
48872
|
if (!(message === null || message === void 0 ? void 0 : message.attachments)) {
|
|
@@ -51381,9 +51385,9 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
|
|
|
51381
51385
|
React__default["default"].createElement("path", { d: 'M12 9.5C12 12.26 9.76 14.5 7 14.5C4.24 14.5 2 12.26 2 9.5H0C0 13.03 2.61 15.93 6 16.42V19.5H8V16.42C11.39 15.93 14 13.03 14 9.5H12Z' }))); };
|
|
51382
51386
|
var BinIcon = function () { return (React__default["default"].createElement("svg", { fill: 'currentColor', viewBox: '0 0 32 32', xmlns: 'http://www.w3.org/2000/svg' },
|
|
51383
51387
|
React__default["default"].createElement("path", { d: 'M8.00033 25.3333C8.00033 26.8 9.20033 28 10.667 28H21.3337C22.8003 28 24.0003 26.8 24.0003 25.3333V12C24.0003 10.5333 22.8003 9.33333 21.3337 9.33333H10.667C9.20033 9.33333 8.00033 10.5333 8.00033 12V25.3333ZM24.0003 5.33333H20.667L19.7203 4.38667C19.4803 4.14667 19.1337 4 18.787 4H13.2137C12.867 4 12.5203 4.14667 12.2803 4.38667L11.3337 5.33333H8.00033C7.26699 5.33333 6.66699 5.93333 6.66699 6.66667C6.66699 7.4 7.26699 8 8.00033 8H24.0003C24.7337 8 25.3337 7.4 25.3337 6.66667C25.3337 5.93333 24.7337 5.33333 24.0003 5.33333Z' }))); };
|
|
51384
|
-
var PauseIcon = function () { return (React__default["default"].createElement("svg", { fill: 'currentColor', viewBox: '0 0 16 20', xmlns: 'http://www.w3.org/2000/svg' },
|
|
51388
|
+
var PauseIcon = function () { return (React__default["default"].createElement("svg", { "data-testid": 'str-chat__pause-icon', fill: 'currentColor', viewBox: '0 0 16 20', xmlns: 'http://www.w3.org/2000/svg' },
|
|
51385
51389
|
React__default["default"].createElement("path", { d: 'M0 19.3333H5.33333V0.666626H0V19.3333ZM10.6667 0.666626V19.3333H16V0.666626H10.6667Z' }))); };
|
|
51386
|
-
var PlayIcon = function () { return (React__default["default"].createElement("svg", { fill: 'currentColor', viewBox: '0 0 14 18', xmlns: 'http://www.w3.org/2000/svg' },
|
|
51390
|
+
var PlayIcon = function () { return (React__default["default"].createElement("svg", { "data-testid": 'str-chat__play-icon', fill: 'currentColor', viewBox: '0 0 14 18', xmlns: 'http://www.w3.org/2000/svg' },
|
|
51387
51391
|
React__default["default"].createElement("path", { d: 'M0.236328 2.09338V15.9067C0.236328 16.9601 1.39633 17.6001 2.28966 17.0267L13.143 10.1201C13.9697 9.60005 13.9697 8.40005 13.143 7.86672L2.28966 0.973385C1.39633 0.400051 0.236328 1.04005 0.236328 2.09338Z' }))); };
|
|
51388
51392
|
var CheckSignIcon = function () { return (React__default["default"].createElement("svg", { fill: 'currentColor', viewBox: '0 0 18 14', xmlns: 'http://www.w3.org/2000/svg' },
|
|
51389
51393
|
React__default["default"].createElement("path", { d: 'M5.79457 10.875L2.32457 7.40502C1.93457 7.01502 1.30457 7.01502 0.91457 7.40502C0.52457 7.79502 0.52457 8.42502 0.91457 8.81502L5.09457 12.995C5.48457 13.385 6.11457 13.385 6.50457 12.995L17.0846 2.41502C17.4746 2.02502 17.4746 1.39502 17.0846 1.00502C16.6946 0.615024 16.0646 0.615024 15.6746 1.00502L5.79457 10.875Z' }))); };
|
|
@@ -51425,7 +51429,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
|
|
|
51425
51429
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
51426
51430
|
React__default["default"].createElement("audio", { ref: audioRef },
|
|
51427
51431
|
React__default["default"].createElement("source", { src: props.src, type: mimeType })),
|
|
51428
|
-
React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__toggle-playback-button', onClick: togglePlay }, isPlaying ? React__default["default"].createElement(PauseIcon, null) : React__default["default"].createElement(PlayIcon, null)),
|
|
51432
|
+
React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__toggle-playback-button', "data-testid": 'audio-recording-preview-toggle-play-btn', onClick: togglePlay }, isPlaying ? React__default["default"].createElement(PauseIcon, null) : React__default["default"].createElement(PlayIcon, null)),
|
|
51429
51433
|
React__default["default"].createElement(RecordingTimer, { durationSeconds: displayedDuration }),
|
|
51430
51434
|
React__default["default"].createElement("div", { className: 'str-chat__wave-progress-bar__track-container' },
|
|
51431
51435
|
React__default["default"].createElement(WaveProgressBar, { progress: progress, seek: seek, waveformData: waveformData || [] }))));
|
|
@@ -51475,11 +51479,12 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
|
|
|
51475
51479
|
}, [recorder]);
|
|
51476
51480
|
if (!recorder)
|
|
51477
51481
|
return null;
|
|
51478
|
-
return (React__default["default"].createElement("div", { className: 'str-
|
|
51479
|
-
|
|
51480
|
-
|
|
51481
|
-
|
|
51482
|
-
|
|
51482
|
+
return (React__default["default"].createElement("div", { className: 'str-chat__waveform-box-container' },
|
|
51483
|
+
React__default["default"].createElement("div", { className: 'str-chat__audio_recorder__waveform-box' }, amplitudes.slice(-maxDataPointsDrawn).map(function (amplitude, i) { return (React__default["default"].createElement("div", { className: 'str-chat__wave-progress-bar__amplitude-bar', key: "amplitude-".concat(i, "-voice-recording"), style: {
|
|
51484
|
+
'--str-chat__wave-progress-bar__amplitude-bar-height': amplitude
|
|
51485
|
+
? amplitude * 100 + '%'
|
|
51486
|
+
: '0%',
|
|
51487
|
+
} })); }))));
|
|
51483
51488
|
};
|
|
51484
51489
|
var AudioRecordingInProgress = function () {
|
|
51485
51490
|
var _a = useTimeElapsed(), secondsElapsed = _a.secondsElapsed, startCounter = _a.startCounter, stopCounter = _a.stopCounter;
|
|
@@ -51501,8 +51506,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
|
|
|
51501
51506
|
}, [recorder, startCounter, stopCounter]);
|
|
51502
51507
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
51503
51508
|
React__default["default"].createElement(RecordingTimer, { durationSeconds: secondsElapsed }),
|
|
51504
|
-
React__default["default"].createElement(
|
|
51505
|
-
React__default["default"].createElement(AudioRecordingWaveform, null))));
|
|
51509
|
+
React__default["default"].createElement(AudioRecordingWaveform, null)));
|
|
51506
51510
|
};
|
|
51507
51511
|
|
|
51508
51512
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Subscription = /** @class */ (function () {
|
|
@@ -64500,18 +64504,23 @@ bitsperframe: %d
|
|
|
64500
64504
|
var _a, _b;
|
|
64501
64505
|
var _c = useMessageInputContext().recordingController, completeRecording = _c.completeRecording, recorder = _c.recorder, recording = _c.recording, recordingState = _c.recordingState;
|
|
64502
64506
|
var isUploadingFile = ((_a = recording === null || recording === void 0 ? void 0 : recording.$internal) === null || _a === void 0 ? void 0 : _a.uploadState) === 'uploading';
|
|
64507
|
+
var state = React$2.useMemo(function () { return ({
|
|
64508
|
+
paused: recordingState === exports.MediaRecordingState.PAUSED,
|
|
64509
|
+
recording: recordingState === exports.MediaRecordingState.RECORDING,
|
|
64510
|
+
stopped: recordingState === exports.MediaRecordingState.STOPPED,
|
|
64511
|
+
}); }, [recordingState]);
|
|
64503
64512
|
if (!recorder)
|
|
64504
64513
|
return null;
|
|
64505
64514
|
return (React__default["default"].createElement("div", { className: 'str-chat__audio_recorder-container' },
|
|
64506
64515
|
React__default["default"].createElement("div", { className: 'str-chat__audio_recorder', "data-testid": 'audio-recorder' },
|
|
64507
|
-
React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__cancel-button', disabled: isUploadingFile, onClick: recorder.cancel },
|
|
64516
|
+
React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__cancel-button', "data-testid": 'cancel-recording-audio-button', disabled: isUploadingFile, onClick: recorder.cancel },
|
|
64508
64517
|
React__default["default"].createElement(BinIcon, null)),
|
|
64509
|
-
(recording === null || recording === void 0 ? void 0 : recording.asset_url) ? (React__default["default"].createElement(AudioRecordingPreview, { durationSeconds: (_b = recording.duration) !== null && _b !== void 0 ? _b : 0, mimeType: recording.mime_type, src: recording.asset_url, waveformData: recording.waveform_data })) : (React__default["default"].createElement(AudioRecordingInProgress, null)),
|
|
64510
|
-
|
|
64518
|
+
state.stopped && (recording === null || recording === void 0 ? void 0 : recording.asset_url) ? (React__default["default"].createElement(AudioRecordingPreview, { durationSeconds: (_b = recording.duration) !== null && _b !== void 0 ? _b : 0, mimeType: recording.mime_type, src: recording.asset_url, waveformData: recording.waveform_data })) : state.paused || state.recording ? (React__default["default"].createElement(AudioRecordingInProgress, null)) : null,
|
|
64519
|
+
state.paused && (React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__resume-recording-button', onClick: recorder.resume },
|
|
64511
64520
|
React__default["default"].createElement(MicIcon, null))),
|
|
64512
|
-
|
|
64521
|
+
state.recording && (React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__pause-recording-button', "data-testid": 'pause-recording-audio-button', onClick: recorder.pause },
|
|
64513
64522
|
React__default["default"].createElement(PauseIcon, null))),
|
|
64514
|
-
|
|
64523
|
+
state.stopped ? (React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__complete-button', "data-testid": 'audio-recorder-complete-button', disabled: isUploadingFile, onClick: completeRecording }, isUploadingFile ? React__default["default"].createElement(LoadingIndicatorIcon, null) : React__default["default"].createElement(SendIconV2, null))) : (React__default["default"].createElement("button", { className: 'str-chat__audio_recorder__stop-button', "data-testid": 'audio-recorder-stop-button', onClick: recorder.stop },
|
|
64515
64524
|
React__default["default"].createElement(CheckSignIcon, null))))));
|
|
64516
64525
|
};
|
|
64517
64526
|
|
|
@@ -66588,7 +66597,7 @@ bitsperframe: %d
|
|
|
66588
66597
|
|
|
66589
66598
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedReactionSelector = React__default["default"].forwardRef(function (props, ref) {
|
|
66590
66599
|
var _a;
|
|
66591
|
-
var propAvatar = props.Avatar, _b = props.detailedView, detailedView = _b === void 0 ? true : _b, propHandleReaction = props.handleReaction, propLatestReactions = props.latest_reactions, propOwnReactions = props.own_reactions,
|
|
66600
|
+
var propAvatar = props.Avatar, _b = props.detailedView, detailedView = _b === void 0 ? true : _b, propHandleReaction = props.handleReaction, propLatestReactions = props.latest_reactions, propOwnReactions = props.own_reactions, propReactionGroups = props.reaction_groups, propReactionOptions = props.reactionOptions, _c = props.reverse, reverse = _c === void 0 ? false : _c;
|
|
66592
66601
|
var _d = useComponentContext('ReactionSelector'), contextAvatar = _d.Avatar, contextReactionOptions = _d.reactionOptions;
|
|
66593
66602
|
var _e = useMessageContext('ReactionSelector'), contextHandleReaction = _e.handleReaction, message = _e.message;
|
|
66594
66603
|
var reactionOptions = propReactionOptions !== null && propReactionOptions !== void 0 ? propReactionOptions : contextReactionOptions;
|
|
@@ -66596,7 +66605,7 @@ bitsperframe: %d
|
|
|
66596
66605
|
var handleReaction = propHandleReaction || contextHandleReaction;
|
|
66597
66606
|
var latestReactions = propLatestReactions || (message === null || message === void 0 ? void 0 : message.latest_reactions) || [];
|
|
66598
66607
|
var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions) || [];
|
|
66599
|
-
var
|
|
66608
|
+
var reactionGroups = propReactionGroups || (message === null || message === void 0 ? void 0 : message.reaction_groups) || {};
|
|
66600
66609
|
var _f = React$2.useState(null), tooltipReactionType = _f[0], setTooltipReactionType = _f[1];
|
|
66601
66610
|
var _g = React$2.useState(null), tooltipPositions = _g[0], setTooltipPositions = _g[1];
|
|
66602
66611
|
var targetRef = React$2.useRef(null);
|
|
@@ -66656,9 +66665,10 @@ bitsperframe: %d
|
|
|
66656
66665
|
React__default["default"].createElement("div", { className: 'arrow', style: { left: tooltipPositions === null || tooltipPositions === void 0 ? void 0 : tooltipPositions.arrow } }), (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 :
|
|
66657
66666
|
_a.map(function (user, i, users) { return (React__default["default"].createElement("span", { className: 'latest-user-username', key: "key-".concat(i, "-").concat(user) }, "".concat(user).concat(i < users.length - 1 ? ', ' : ''))); }))),
|
|
66658
66667
|
React__default["default"].createElement("ul", { className: 'str-chat__message-reactions-list str-chat__message-reactions-options' }, reactionOptions.map(function (_a) {
|
|
66668
|
+
var _b, _c;
|
|
66659
66669
|
var Component = _a.Component, reactionName = _a.name, reactionType = _a.type;
|
|
66660
66670
|
var latestUser = getLatestUserForReactionType(reactionType);
|
|
66661
|
-
var count =
|
|
66671
|
+
var count = (_c = (_b = reactionGroups[reactionType]) === null || _b === void 0 ? void 0 : _b.count) !== null && _c !== void 0 ? _c : 0;
|
|
66662
66672
|
return (React__default["default"].createElement("li", { key: reactionType },
|
|
66663
66673
|
React__default["default"].createElement("button", { "aria-label": "Select Reaction: ".concat(reactionName || reactionType), className: clsx('str-chat__message-reactions-list-item str-chat__message-reactions-option', {
|
|
66664
66674
|
'str-chat__message-reactions-option-selected': iHaveReactedWithReaction(reactionType),
|
|
@@ -66675,18 +66685,21 @@ bitsperframe: %d
|
|
|
66675
66685
|
var ReactionSelector = React__default["default"].memo(UnMemoizedReactionSelector);
|
|
66676
66686
|
|
|
66677
66687
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var defaultReactionsSort = function (a, b) {
|
|
66688
|
+
if (a.firstReactionAt && b.firstReactionAt) {
|
|
66689
|
+
return +a.firstReactionAt - +b.firstReactionAt;
|
|
66690
|
+
}
|
|
66678
66691
|
return a.reactionType.localeCompare(b.reactionType, 'en');
|
|
66679
66692
|
};
|
|
66680
66693
|
var useProcessReactions = function (params) {
|
|
66681
66694
|
var _a;
|
|
66682
|
-
var propOwnReactions = params.own_reactions,
|
|
66695
|
+
var propOwnReactions = params.own_reactions, propReactionGroups = params.reaction_groups, propReactionOptions = params.reactionOptions, propReactions = params.reactions, propSortReactions = params.sortReactions;
|
|
66683
66696
|
var _b = useMessageContext('useProcessReactions'), message = _b.message, contextSortReactions = _b.sortReactions;
|
|
66684
66697
|
var contextReactionOptions = useComponentContext('useProcessReactions').reactionOptions;
|
|
66685
66698
|
var reactionOptions = propReactionOptions !== null && propReactionOptions !== void 0 ? propReactionOptions : contextReactionOptions;
|
|
66686
66699
|
var sortReactions = (_a = propSortReactions !== null && propSortReactions !== void 0 ? propSortReactions : contextSortReactions) !== null && _a !== void 0 ? _a : defaultReactionsSort;
|
|
66687
66700
|
var latestReactions = propReactions || message.latest_reactions;
|
|
66688
66701
|
var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions);
|
|
66689
|
-
var
|
|
66702
|
+
var reactionGroups = propReactionGroups || (message === null || message === void 0 ? void 0 : message.reaction_groups);
|
|
66690
66703
|
var isOwnReaction = React$2.useCallback(function (reactionType) { var _a; return (_a = ownReactions === null || ownReactions === void 0 ? void 0 : ownReactions.some(function (reaction) { return reaction.type === reactionType; })) !== null && _a !== void 0 ? _a : false; }, [ownReactions]);
|
|
66691
66704
|
var getEmojiByReactionType = React$2.useCallback(function (reactionType) { var _a, _b; return (_b = (_a = reactionOptions.find(function (_a) {
|
|
66692
66705
|
var type = _a.type;
|
|
@@ -66707,21 +66720,25 @@ bitsperframe: %d
|
|
|
66707
66720
|
})) !== null && _a !== void 0 ? _a : [];
|
|
66708
66721
|
}, [latestReactions]);
|
|
66709
66722
|
var existingReactions = React$2.useMemo(function () {
|
|
66710
|
-
if (!
|
|
66723
|
+
if (!reactionGroups) {
|
|
66711
66724
|
return [];
|
|
66712
66725
|
}
|
|
66713
|
-
var unsortedReactions = Object.entries(
|
|
66714
|
-
var reactionType = _a[0],
|
|
66715
|
-
if (
|
|
66726
|
+
var unsortedReactions = Object.entries(reactionGroups).flatMap(function (_a) {
|
|
66727
|
+
var reactionType = _a[0], _b = _a[1], count = _b.count, first_reaction_at = _b.first_reaction_at, last_reaction_at = _b.last_reaction_at;
|
|
66728
|
+
if (count === 0 || !isSupportedReaction(reactionType)) {
|
|
66716
66729
|
return [];
|
|
66717
66730
|
}
|
|
66731
|
+
var latestReactedUserNames = getLatestReactedUserNames(reactionType);
|
|
66718
66732
|
return [
|
|
66719
66733
|
{
|
|
66720
66734
|
EmojiComponent: getEmojiByReactionType(reactionType),
|
|
66735
|
+
firstReactionAt: first_reaction_at ? new Date(first_reaction_at) : null,
|
|
66721
66736
|
isOwnReaction: isOwnReaction(reactionType),
|
|
66722
|
-
|
|
66723
|
-
|
|
66737
|
+
lastReactionAt: last_reaction_at ? new Date(last_reaction_at) : null,
|
|
66738
|
+
latestReactedUserNames: latestReactedUserNames,
|
|
66739
|
+
reactionCount: count,
|
|
66724
66740
|
reactionType: reactionType,
|
|
66741
|
+
unlistedReactedUserCount: count - latestReactedUserNames.length,
|
|
66725
66742
|
},
|
|
66726
66743
|
];
|
|
66727
66744
|
});
|
|
@@ -66731,7 +66748,7 @@ bitsperframe: %d
|
|
|
66731
66748
|
getLatestReactedUserNames,
|
|
66732
66749
|
isOwnReaction,
|
|
66733
66750
|
isSupportedReaction,
|
|
66734
|
-
|
|
66751
|
+
reactionGroups,
|
|
66735
66752
|
sortReactions,
|
|
66736
66753
|
]);
|
|
66737
66754
|
var hasReactions = existingReactions.length > 0;
|
|
@@ -67185,25 +67202,32 @@ bitsperframe: %d
|
|
|
67185
67202
|
var client = useChatContext('useReactionHandler').client;
|
|
67186
67203
|
var createMessagePreview = React$2.useCallback(function (add, reaction, message) {
|
|
67187
67204
|
var _a, _b;
|
|
67188
|
-
var
|
|
67205
|
+
var newReactionGroups = (message === null || message === void 0 ? void 0 : message.reaction_groups) || {};
|
|
67189
67206
|
var reactionType = reaction.type;
|
|
67190
|
-
var hasReaction = !!
|
|
67207
|
+
var hasReaction = !!newReactionGroups[reactionType];
|
|
67191
67208
|
if (add) {
|
|
67192
|
-
|
|
67209
|
+
var timestamp = new Date().toISOString();
|
|
67210
|
+
newReactionGroups[reactionType] = hasReaction
|
|
67211
|
+
? __assign(__assign({}, newReactionGroups[reactionType]), { count: newReactionGroups[reactionType].count + 1 }) : {
|
|
67212
|
+
count: 1,
|
|
67213
|
+
first_reaction_at: timestamp,
|
|
67214
|
+
last_reaction_at: timestamp,
|
|
67215
|
+
sum_scores: 1,
|
|
67216
|
+
};
|
|
67193
67217
|
}
|
|
67194
67218
|
else {
|
|
67195
|
-
if (hasReaction &&
|
|
67196
|
-
|
|
67219
|
+
if (hasReaction && newReactionGroups[reactionType].count > 1) {
|
|
67220
|
+
newReactionGroups[reactionType] = __assign(__assign({}, newReactionGroups[reactionType]), { count: newReactionGroups[reactionType].count - 1 });
|
|
67197
67221
|
}
|
|
67198
67222
|
else {
|
|
67199
|
-
delete
|
|
67223
|
+
delete newReactionGroups[reactionType];
|
|
67200
67224
|
}
|
|
67201
67225
|
}
|
|
67202
67226
|
var newReactions = add
|
|
67203
67227
|
? __spreadArray([reaction], ((message === null || message === void 0 ? void 0 : message.latest_reactions) || []), true) : (_a = message.latest_reactions) === null || _a === void 0 ? void 0 : _a.filter(function (item) { return !(item.type === reaction.type && item.user_id === reaction.user_id); });
|
|
67204
67228
|
var newOwnReactions = add
|
|
67205
67229
|
? __spreadArray([reaction], ((message === null || message === void 0 ? void 0 : message.own_reactions) || []), true) : (_b = message === null || message === void 0 ? void 0 : message.own_reactions) === null || _b === void 0 ? void 0 : _b.filter(function (item) { return item.type !== reaction.type; });
|
|
67206
|
-
return __assign(__assign({}, message), { latest_reactions: newReactions || message.latest_reactions, own_reactions: newOwnReactions,
|
|
67230
|
+
return __assign(__assign({}, message), { latest_reactions: newReactions || message.latest_reactions, own_reactions: newOwnReactions, reaction_groups: newReactionGroups });
|
|
67207
67231
|
},
|
|
67208
67232
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
67209
67233
|
[client.user, client.userID]);
|
|
@@ -68022,7 +68046,7 @@ bitsperframe: %d
|
|
|
68022
68046
|
((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_d = previousMessage.user) === null || _d === void 0 ? void 0 : _d.id) ||
|
|
68023
68047
|
previousMessage.type === 'error' ||
|
|
68024
68048
|
previousMessage.deleted_at ||
|
|
68025
|
-
(message.
|
|
68049
|
+
(message.reaction_groups && Object.keys(message.reaction_groups).length > 0) ||
|
|
68026
68050
|
isMessageEdited(previousMessage);
|
|
68027
68051
|
var isBottomMessage = !nextMessage ||
|
|
68028
68052
|
nextMessage.customType === CUSTOM_MESSAGE_TYPE.date ||
|
|
@@ -68032,7 +68056,7 @@ bitsperframe: %d
|
|
|
68032
68056
|
((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_g = nextMessage.user) === null || _g === void 0 ? void 0 : _g.id) ||
|
|
68033
68057
|
nextMessage.type === 'error' ||
|
|
68034
68058
|
nextMessage.deleted_at ||
|
|
68035
|
-
(nextMessage.
|
|
68059
|
+
(nextMessage.reaction_groups && Object.keys(nextMessage.reaction_groups).length > 0) ||
|
|
68036
68060
|
isMessageEdited(message);
|
|
68037
68061
|
if (!isTopMessage && !isBottomMessage) {
|
|
68038
68062
|
if (message.deleted_at || message.type === 'error')
|
|
@@ -73280,7 +73304,7 @@ bitsperframe: %d
|
|
|
73280
73304
|
|
|
73281
73305
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
|
|
73282
73306
|
|
|
73283
|
-
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '11.
|
|
73307
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '11.16.0';
|
|
73284
73308
|
|
|
73285
73309
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
|
|
73286
73310
|
var _b, _c;
|