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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAudioController.d.ts","sourceRoot":"","sources":["../../../../src/components/Attachment/hooks/useAudioController.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB,iBAAkB,gBAAgB,GAAG,IAAI,mBACR,CAAC;AAM/D,MAAM,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,cAAc,CAAA;CAAE,KAAK,IAAI,CAAC;AAE1F,KAAK,qBAAqB,GAAG;IAC3B,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oJAAoJ;IACpJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uGAAuG;IACvG,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,mDAI5B,qBAAqB;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useAudioController.d.ts","sourceRoot":"","sources":["../../../../src/components/Attachment/hooks/useAudioController.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB,iBAAkB,gBAAgB,GAAG,IAAI,mBACR,CAAC;AAM/D,MAAM,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,cAAc,CAAA;CAAE,KAAK,IAAI,CAAC;AAE1F,KAAK,qBAAqB,GAAG;IAC3B,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oJAAoJ;IACpJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uGAAuG;IACvG,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,mDAI5B,qBAAqB;;;;;;;;;;;CA+HvB,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Window = require('../../Window-
|
|
5
|
+
var Window = require('../../Window-996f3be8.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var Picker = require('@emoji-mart/react');
|
|
8
8
|
require('dayjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioRecorder.d.ts","sourceRoot":"","sources":["../../../../src/components/MediaRecorder/AudioRecorder/AudioRecorder.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AudioRecorder.d.ts","sourceRoot":"","sources":["../../../../src/components/MediaRecorder/AudioRecorder/AudioRecorder.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAcvC,eAAO,MAAM,aAAa,gCA+EzB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
2
|
import { AudioRecordingPreview } from './AudioRecordingPreview';
|
|
3
3
|
import { AudioRecordingInProgress } from './AudioRecordingInProgress';
|
|
4
4
|
import { MediaRecordingState } from '../classes';
|
|
@@ -8,17 +8,22 @@ export var AudioRecorder = function () {
|
|
|
8
8
|
var _a, _b;
|
|
9
9
|
var _c = useMessageInputContext().recordingController, completeRecording = _c.completeRecording, recorder = _c.recorder, recording = _c.recording, recordingState = _c.recordingState;
|
|
10
10
|
var isUploadingFile = ((_a = recording === null || recording === void 0 ? void 0 : recording.$internal) === null || _a === void 0 ? void 0 : _a.uploadState) === 'uploading';
|
|
11
|
+
var state = useMemo(function () { return ({
|
|
12
|
+
paused: recordingState === MediaRecordingState.PAUSED,
|
|
13
|
+
recording: recordingState === MediaRecordingState.RECORDING,
|
|
14
|
+
stopped: recordingState === MediaRecordingState.STOPPED,
|
|
15
|
+
}); }, [recordingState]);
|
|
11
16
|
if (!recorder)
|
|
12
17
|
return null;
|
|
13
18
|
return (React.createElement("div", { className: 'str-chat__audio_recorder-container' },
|
|
14
19
|
React.createElement("div", { className: 'str-chat__audio_recorder', "data-testid": 'audio-recorder' },
|
|
15
|
-
React.createElement("button", { className: 'str-chat__audio_recorder__cancel-button', disabled: isUploadingFile, onClick: recorder.cancel },
|
|
20
|
+
React.createElement("button", { className: 'str-chat__audio_recorder__cancel-button', "data-testid": 'cancel-recording-audio-button', disabled: isUploadingFile, onClick: recorder.cancel },
|
|
16
21
|
React.createElement(BinIcon, null)),
|
|
17
|
-
(recording === null || recording === void 0 ? void 0 : recording.asset_url) ? (React.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.createElement(AudioRecordingInProgress, null)),
|
|
18
|
-
|
|
22
|
+
state.stopped && (recording === null || recording === void 0 ? void 0 : recording.asset_url) ? (React.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.createElement(AudioRecordingInProgress, null)) : null,
|
|
23
|
+
state.paused && (React.createElement("button", { className: 'str-chat__audio_recorder__resume-recording-button', onClick: recorder.resume },
|
|
19
24
|
React.createElement(MicIcon, null))),
|
|
20
|
-
|
|
25
|
+
state.recording && (React.createElement("button", { className: 'str-chat__audio_recorder__pause-recording-button', "data-testid": 'pause-recording-audio-button', onClick: recorder.pause },
|
|
21
26
|
React.createElement(PauseIcon, null))),
|
|
22
|
-
|
|
27
|
+
state.stopped ? (React.createElement("button", { className: 'str-chat__audio_recorder__complete-button', "data-testid": 'audio-recorder-complete-button', disabled: isUploadingFile, onClick: completeRecording }, isUploadingFile ? React.createElement(LoadingIndicatorIcon, null) : React.createElement(SendIconV2, null))) : (React.createElement("button", { className: 'str-chat__audio_recorder__stop-button', "data-testid": 'audio-recorder-stop-button', onClick: recorder.stop },
|
|
23
28
|
React.createElement(CheckSignIcon, null))))));
|
|
24
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioRecordingInProgress.d.ts","sourceRoot":"","sources":["../../../../src/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AudioRecordingInProgress.d.ts","sourceRoot":"","sources":["../../../../src/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AA8CnD,eAAO,MAAM,wBAAwB,yBA6BpC,CAAC"}
|
|
@@ -16,11 +16,12 @@ var AudioRecordingWaveform = function (_a) {
|
|
|
16
16
|
}, [recorder]);
|
|
17
17
|
if (!recorder)
|
|
18
18
|
return null;
|
|
19
|
-
return (React.createElement("div", { className: 'str-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
return (React.createElement("div", { className: 'str-chat__waveform-box-container' },
|
|
20
|
+
React.createElement("div", { className: 'str-chat__audio_recorder__waveform-box' }, amplitudes.slice(-maxDataPointsDrawn).map(function (amplitude, i) { return (React.createElement("div", { className: 'str-chat__wave-progress-bar__amplitude-bar', key: "amplitude-".concat(i, "-voice-recording"), style: {
|
|
21
|
+
'--str-chat__wave-progress-bar__amplitude-bar-height': amplitude
|
|
22
|
+
? amplitude * 100 + '%'
|
|
23
|
+
: '0%',
|
|
24
|
+
} })); }))));
|
|
24
25
|
};
|
|
25
26
|
export var AudioRecordingInProgress = function () {
|
|
26
27
|
var _a = useTimeElapsed(), secondsElapsed = _a.secondsElapsed, startCounter = _a.startCounter, stopCounter = _a.stopCounter;
|
|
@@ -42,6 +43,5 @@ export var AudioRecordingInProgress = function () {
|
|
|
42
43
|
}, [recorder, startCounter, stopCounter]);
|
|
43
44
|
return (React.createElement(React.Fragment, null,
|
|
44
45
|
React.createElement(RecordingTimer, { durationSeconds: secondsElapsed }),
|
|
45
|
-
React.createElement(
|
|
46
|
-
React.createElement(AudioRecordingWaveform, null))));
|
|
46
|
+
React.createElement(AudioRecordingWaveform, null)));
|
|
47
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioRecordingPreview.d.ts","sourceRoot":"","sources":["../../../../src/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG;IACtE,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,0DAK/B,yBAAyB,
|
|
1
|
+
{"version":3,"file":"AudioRecordingPreview.d.ts","sourceRoot":"","sources":["../../../../src/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG;IACtE,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,0DAK/B,yBAAyB,sBA0B3B,CAAC"}
|
|
@@ -14,7 +14,7 @@ export var AudioRecordingPreview = function (_a) {
|
|
|
14
14
|
return (React.createElement(React.Fragment, null,
|
|
15
15
|
React.createElement("audio", { ref: audioRef },
|
|
16
16
|
React.createElement("source", { src: props.src, type: mimeType })),
|
|
17
|
-
React.createElement("button", { className: 'str-chat__audio_recorder__toggle-playback-button', onClick: togglePlay }, isPlaying ? React.createElement(PauseIcon, null) : React.createElement(PlayIcon, null)),
|
|
17
|
+
React.createElement("button", { className: 'str-chat__audio_recorder__toggle-playback-button', "data-testid": 'audio-recording-preview-toggle-play-btn', onClick: togglePlay }, isPlaying ? React.createElement(PauseIcon, null) : React.createElement(PlayIcon, null)),
|
|
18
18
|
React.createElement(RecordingTimer, { durationSeconds: displayedDuration }),
|
|
19
19
|
React.createElement("div", { className: 'str-chat__wave-progress-bar__track-container' },
|
|
20
20
|
React.createElement(WaveProgressBar, { progress: progress, seek: seek, waveformData: waveformData || [] }))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReactionHandler.d.ts","sourceRoot":"","sources":["../../../../src/components/Message/hooks/useReactionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAC;AAInF,OAAO,EAAE,aAAa,EAA0B,MAAM,sCAAsC,CAAC;AAG7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAIlD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,sBAAsB,4MACsF,CAAC;AAE1H,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"useReactionHandler.d.ts","sourceRoot":"","sources":["../../../../src/components/Message/hooks/useReactionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAC;AAInF,OAAO,EAAE,aAAa,EAA0B,MAAM,sCAAsC,CAAC;AAG7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAIlD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,sBAAsB,4MACsF,CAAC;AAE1H,eAAO,MAAM,kBAAkB,gKA2FD,MAAM,UAAU,MAAM,kBAAkB,kBAmCrE,CAAC;AAEF,eAAO,MAAM,gBAAgB,oKAIL,UAAU,cAAc,GAAG,IAAI,CAAC,sBAClC,UAAU,cAAc,GAAG,IAAI,CAAC,iCACrB,OAAO;;;;CAyFvC,CAAC"}
|
|
@@ -11,25 +11,32 @@ export var useReactionHandler = function (message) {
|
|
|
11
11
|
var client = useChatContext('useReactionHandler').client;
|
|
12
12
|
var createMessagePreview = useCallback(function (add, reaction, message) {
|
|
13
13
|
var _a, _b;
|
|
14
|
-
var
|
|
14
|
+
var newReactionGroups = (message === null || message === void 0 ? void 0 : message.reaction_groups) || {};
|
|
15
15
|
var reactionType = reaction.type;
|
|
16
|
-
var hasReaction = !!
|
|
16
|
+
var hasReaction = !!newReactionGroups[reactionType];
|
|
17
17
|
if (add) {
|
|
18
|
-
|
|
18
|
+
var timestamp = new Date().toISOString();
|
|
19
|
+
newReactionGroups[reactionType] = hasReaction
|
|
20
|
+
? __assign(__assign({}, newReactionGroups[reactionType]), { count: newReactionGroups[reactionType].count + 1 }) : {
|
|
21
|
+
count: 1,
|
|
22
|
+
first_reaction_at: timestamp,
|
|
23
|
+
last_reaction_at: timestamp,
|
|
24
|
+
sum_scores: 1,
|
|
25
|
+
};
|
|
19
26
|
}
|
|
20
27
|
else {
|
|
21
|
-
if (hasReaction &&
|
|
22
|
-
|
|
28
|
+
if (hasReaction && newReactionGroups[reactionType].count > 1) {
|
|
29
|
+
newReactionGroups[reactionType] = __assign(__assign({}, newReactionGroups[reactionType]), { count: newReactionGroups[reactionType].count - 1 });
|
|
23
30
|
}
|
|
24
31
|
else {
|
|
25
|
-
delete
|
|
32
|
+
delete newReactionGroups[reactionType];
|
|
26
33
|
}
|
|
27
34
|
}
|
|
28
35
|
var newReactions = add
|
|
29
36
|
? __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); });
|
|
30
37
|
var newOwnReactions = add
|
|
31
38
|
? __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; });
|
|
32
|
-
return __assign(__assign({}, message), { latest_reactions: newReactions || message.latest_reactions, own_reactions: newOwnReactions,
|
|
39
|
+
return __assign(__assign({}, message), { latest_reactions: newReactions || message.latest_reactions, own_reactions: newOwnReactions, reaction_groups: newReactionGroups });
|
|
33
40
|
},
|
|
34
41
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
35
42
|
[client.user, client.userID]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Message/utils.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,8CACV,OAAO,2BAiB9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,2LAUvB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;CAU3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAChE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,CAAC,CAC9E,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,cAwDnC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,YACnB,mBAAmB,GAAG,OAAO,kGAWnC,YAAY,gCAmDhB,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAKzC,CAAC;AAEF,eAAO,MAAM,qBAAqB,oDAErB,OAAO,GAAG,SAAS,YAsB/B,CAAC;AAmBF,eAAO,MAAM,oBAAoB;;;;;;aAsChC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;aA+BlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Message/utils.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,8CACV,OAAO,2BAiB9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,2LAUvB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;CAU3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CAChE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,CAAC,CAC9E,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,cAwDnC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,YACnB,mBAAmB,GAAG,OAAO,kGAWnC,YAAY,gCAmDhB,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAKzC,CAAC;AAEF,eAAO,MAAM,qBAAqB,oDAErB,OAAO,GAAG,SAAS,YAsB/B,CAAC;AAmBF,eAAO,MAAM,oBAAoB;;;;;;aAsChC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;aA+BlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,wJAIiD,CAAC;AAElF,eAAO,MAAM,qBAAqB,wJAIyB,CAAC;AAE5D,eAAO,MAAM,SAAS,yMASrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,yMASlC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,CAAC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAC/E,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,GACrC,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,qBAAsD,CAAC;AAEvF,eAAO,MAAM,oBAAoB,mIAI5B,SAAS,iEAEW,qBAAqB,WAiD7C,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,MAAM,YAOzC,CAAC;AAEF,eAAO,MAAM,gBAAgB,gLAM4C,CAAC;AAE1E,eAAO,MAAM,eAAe,4KAIU,CAAC"}
|
|
@@ -222,7 +222,10 @@ export var areMessageUIPropsEqual = function (prevProps, nextProps) {
|
|
|
222
222
|
}
|
|
223
223
|
return areMessagesEqual(prevMessage, nextMessage);
|
|
224
224
|
};
|
|
225
|
-
export var messageHasReactions = function (message) { var _a; return Object.values((_a = message === null || message === void 0 ? void 0 : message.
|
|
225
|
+
export 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) {
|
|
226
|
+
var count = _a.count;
|
|
227
|
+
return count > 0;
|
|
228
|
+
}); };
|
|
226
229
|
export var messageHasAttachments = function (message) { return !!(message === null || message === void 0 ? void 0 : message.attachments) && !!message.attachments.length; };
|
|
227
230
|
export var getImages = function (message) {
|
|
228
231
|
if (!(message === null || message === void 0 ? void 0 : message.attachments)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,eAAO,MAAM,cAAc,yBAW1B,CAAC;AAEF,eAAO,MAAM,cAAc,yBAW1B,CAAC;AAGF,eAAO,MAAM,eAAe,yBAW3B,CAAC;AAEF,eAAO,MAAM,cAAc,yBAY1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,yBAY9B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;uBA0BhC,CAAC;AAGF,eAAO,MAAM,UAAU,yBAqBtB,CAAC;AAEF,eAAO,MAAM,SAAS,yBAcrB,CAAC;AAEF,eAAO,MAAM,SAAS,yBAcrB,CAAC;AAEF,eAAO,MAAM,YAAY,yBAcxB,CAAC;AAEF,eAAO,MAAM,QAAQ,yBASpB,CAAC;AAEF,eAAO,MAAM,UAAU,yBAYtB,CAAC;AAEF,eAAO,MAAM,UAAU,yBAetB,CAAC;AAEF,eAAO,MAAM,OAAO,yBAKnB,CAAC;AAEF,eAAO,MAAM,OAAO,yBAInB,CAAC;AAEF,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,eAAO,MAAM,cAAc,yBAW1B,CAAC;AAEF,eAAO,MAAM,cAAc,yBAW1B,CAAC;AAGF,eAAO,MAAM,eAAe,yBAW3B,CAAC;AAEF,eAAO,MAAM,cAAc,yBAY1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,yBAY9B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;uBA0BhC,CAAC;AAGF,eAAO,MAAM,UAAU,yBAqBtB,CAAC;AAEF,eAAO,MAAM,SAAS,yBAcrB,CAAC;AAEF,eAAO,MAAM,SAAS,yBAcrB,CAAC;AAEF,eAAO,MAAM,YAAY,yBAcxB,CAAC;AAEF,eAAO,MAAM,QAAQ,yBASpB,CAAC;AAEF,eAAO,MAAM,UAAU,yBAYtB,CAAC;AAEF,eAAO,MAAM,UAAU,yBAetB,CAAC;AAEF,eAAO,MAAM,OAAO,yBAKnB,CAAC;AAEF,eAAO,MAAM,OAAO,yBAInB,CAAC;AAEF,eAAO,MAAM,SAAS,yBASrB,CAAC;AAEF,eAAO,MAAM,QAAQ,yBASpB,CAAC;AAEF,eAAO,MAAM,aAAa,yBAIzB,CAAC"}
|
|
@@ -74,9 +74,9 @@ export var MicIcon = function () { return (React.createElement("svg", { fill: 'c
|
|
|
74
74
|
React.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' }))); };
|
|
75
75
|
export var BinIcon = function () { return (React.createElement("svg", { fill: 'currentColor', viewBox: '0 0 32 32', xmlns: 'http://www.w3.org/2000/svg' },
|
|
76
76
|
React.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' }))); };
|
|
77
|
-
export var PauseIcon = function () { return (React.createElement("svg", { fill: 'currentColor', viewBox: '0 0 16 20', xmlns: 'http://www.w3.org/2000/svg' },
|
|
77
|
+
export var PauseIcon = function () { return (React.createElement("svg", { "data-testid": 'str-chat__pause-icon', fill: 'currentColor', viewBox: '0 0 16 20', xmlns: 'http://www.w3.org/2000/svg' },
|
|
78
78
|
React.createElement("path", { d: 'M0 19.3333H5.33333V0.666626H0V19.3333ZM10.6667 0.666626V19.3333H16V0.666626H10.6667Z' }))); };
|
|
79
|
-
export var PlayIcon = function () { return (React.createElement("svg", { fill: 'currentColor', viewBox: '0 0 14 18', xmlns: 'http://www.w3.org/2000/svg' },
|
|
79
|
+
export var PlayIcon = function () { return (React.createElement("svg", { "data-testid": 'str-chat__play-icon', fill: 'currentColor', viewBox: '0 0 14 18', xmlns: 'http://www.w3.org/2000/svg' },
|
|
80
80
|
React.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' }))); };
|
|
81
81
|
export var CheckSignIcon = function () { return (React.createElement("svg", { fill: 'currentColor', viewBox: '0 0 18 14', xmlns: 'http://www.w3.org/2000/svg' },
|
|
82
82
|
React.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' }))); };
|
|
@@ -188,7 +188,7 @@ export var getGroupStyles = function (message, previousMessage, nextMessage, noG
|
|
|
188
188
|
((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_d = previousMessage.user) === null || _d === void 0 ? void 0 : _d.id) ||
|
|
189
189
|
previousMessage.type === 'error' ||
|
|
190
190
|
previousMessage.deleted_at ||
|
|
191
|
-
(message.
|
|
191
|
+
(message.reaction_groups && Object.keys(message.reaction_groups).length > 0) ||
|
|
192
192
|
isMessageEdited(previousMessage);
|
|
193
193
|
var isBottomMessage = !nextMessage ||
|
|
194
194
|
nextMessage.customType === CUSTOM_MESSAGE_TYPE.date ||
|
|
@@ -198,7 +198,7 @@ export var getGroupStyles = function (message, previousMessage, nextMessage, noG
|
|
|
198
198
|
((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_g = nextMessage.user) === null || _g === void 0 ? void 0 : _g.id) ||
|
|
199
199
|
nextMessage.type === 'error' ||
|
|
200
200
|
nextMessage.deleted_at ||
|
|
201
|
-
(nextMessage.
|
|
201
|
+
(nextMessage.reaction_groups && Object.keys(nextMessage.reaction_groups).length > 0) ||
|
|
202
202
|
isMessageEdited(message);
|
|
203
203
|
if (!isTopMessage && !isBottomMessage) {
|
|
204
204
|
if (message.deleted_at || message.type === 'error')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AvatarProps } from '../Avatar';
|
|
3
|
-
import type { ReactionResponse } from 'stream-chat';
|
|
3
|
+
import type { ReactionGroupResponse, ReactionResponse } from 'stream-chat';
|
|
4
4
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
5
5
|
import type { ReactionOptions } from './reactionOptions';
|
|
6
6
|
export type ReactionSelectorProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
@@ -14,8 +14,13 @@ export type ReactionSelectorProps<StreamChatGenerics extends DefaultStreamChatGe
|
|
|
14
14
|
latest_reactions?: ReactionResponse<StreamChatGenerics>[];
|
|
15
15
|
/** An array of the own reaction objects to distinguish own reactions visually */
|
|
16
16
|
own_reactions?: ReactionResponse<StreamChatGenerics>[];
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* An object that keeps track of the count of each type of reaction on a message
|
|
19
|
+
* @deprecated This override value is no longer taken into account. Use `reaction_groups` to override reaction counts instead.
|
|
20
|
+
* */
|
|
18
21
|
reaction_counts?: Record<string, number>;
|
|
22
|
+
/** An object containing summary for each reaction type on a message */
|
|
23
|
+
reaction_groups?: Record<string, ReactionGroupResponse>;
|
|
19
24
|
/** A list of the currently supported reactions on a message */
|
|
20
25
|
reactionOptions?: ReactionOptions;
|
|
21
26
|
/** If true, adds a CSS class that reverses the horizontal positioning of the selector */
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,MAAM,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;;;SAGK;IACL,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACxD,+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"}
|
|
@@ -6,7 +6,7 @@ import { useComponentContext } from '../../context/ComponentContext';
|
|
|
6
6
|
import { useMessageContext } from '../../context/MessageContext';
|
|
7
7
|
var UnMemoizedReactionSelector = React.forwardRef(function (props, ref) {
|
|
8
8
|
var _a;
|
|
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,
|
|
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, propReactionGroups = props.reaction_groups, propReactionOptions = props.reactionOptions, _c = props.reverse, reverse = _c === void 0 ? false : _c;
|
|
10
10
|
var _d = useComponentContext('ReactionSelector'), contextAvatar = _d.Avatar, contextReactionOptions = _d.reactionOptions;
|
|
11
11
|
var _e = useMessageContext('ReactionSelector'), contextHandleReaction = _e.handleReaction, message = _e.message;
|
|
12
12
|
var reactionOptions = propReactionOptions !== null && propReactionOptions !== void 0 ? propReactionOptions : contextReactionOptions;
|
|
@@ -14,7 +14,7 @@ var UnMemoizedReactionSelector = React.forwardRef(function (props, ref) {
|
|
|
14
14
|
var handleReaction = propHandleReaction || contextHandleReaction;
|
|
15
15
|
var latestReactions = propLatestReactions || (message === null || message === void 0 ? void 0 : message.latest_reactions) || [];
|
|
16
16
|
var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions) || [];
|
|
17
|
-
var
|
|
17
|
+
var reactionGroups = propReactionGroups || (message === null || message === void 0 ? void 0 : message.reaction_groups) || {};
|
|
18
18
|
var _f = useState(null), tooltipReactionType = _f[0], setTooltipReactionType = _f[1];
|
|
19
19
|
var _g = useState(null), tooltipPositions = _g[0], setTooltipPositions = _g[1];
|
|
20
20
|
var targetRef = useRef(null);
|
|
@@ -74,9 +74,10 @@ var UnMemoizedReactionSelector = React.forwardRef(function (props, ref) {
|
|
|
74
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 :
|
|
75
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 ? ', ' : ''))); }))),
|
|
76
76
|
React.createElement("ul", { className: 'str-chat__message-reactions-list str-chat__message-reactions-options' }, reactionOptions.map(function (_a) {
|
|
77
|
+
var _b, _c;
|
|
77
78
|
var Component = _a.Component, reactionName = _a.name, reactionType = _a.type;
|
|
78
79
|
var latestUser = getLatestUserForReactionType(reactionType);
|
|
79
|
-
var count =
|
|
80
|
+
var count = (_c = (_b = reactionGroups[reactionType]) === null || _b === void 0 ? void 0 : _b.count) !== null && _c !== void 0 ? _c : 0;
|
|
80
81
|
return (React.createElement("li", { key: reactionType },
|
|
81
82
|
React.createElement("button", { "aria-label": "Select Reaction: ".concat(reactionName || reactionType), className: clsx('str-chat__message-reactions-list-item str-chat__message-reactions-option', {
|
|
82
83
|
'str-chat__message-reactions-option-selected': iHaveReactedWithReaction(reactionType),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ReactionResponse } from 'stream-chat';
|
|
2
|
+
import type { ReactionGroupResponse, ReactionResponse } from 'stream-chat';
|
|
3
3
|
import type { ReactEventHandler } from '../Message/types';
|
|
4
4
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
5
5
|
import type { ReactionOptions } from './reactionOptions';
|
|
@@ -10,8 +10,13 @@ export type ReactionsListProps<StreamChatGenerics extends DefaultStreamChatGener
|
|
|
10
10
|
onClick?: ReactEventHandler;
|
|
11
11
|
/** An array of the own reaction objects to distinguish own reactions visually */
|
|
12
12
|
own_reactions?: ReactionResponse<StreamChatGenerics>[];
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* An object that keeps track of the count of each type of reaction on a message
|
|
15
|
+
* @deprecated This override value is no longer taken into account. Use `reaction_groups` to override reaction counts instead.
|
|
16
|
+
* */
|
|
14
17
|
reaction_counts?: Record<string, number>;
|
|
18
|
+
/** An object containing summary for each reaction type on a message */
|
|
19
|
+
reaction_groups?: Record<string, ReactionGroupResponse>;
|
|
15
20
|
/** A list of the currently supported reactions on a message */
|
|
16
21
|
reactionOptions?: ReactionOptions;
|
|
17
22
|
/** An array of the reaction objects to display in the list */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/ReactionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/ReactionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI3E,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;AACzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAyB,MAAM,eAAe,CAAC;AAG3E,MAAM,MAAM,kBAAkB,CAC5B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG;IACnF,sHAAsH;IACtH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD;;;SAGK;IACL,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACxD,+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;IAClB,4FAA4F;IAC5F,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;IAChD,4EAA4E;IAC5E,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC,CAAC;AAgFF;;GAEG;AACH,eAAO,MAAM,aAAa,+JAAwE,CAAC"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ReactionResponse } from 'stream-chat';
|
|
2
|
+
import type { ReactionGroupResponse, ReactionResponse } from 'stream-chat';
|
|
3
3
|
import { MessageContextValue } from '../../context/MessageContext';
|
|
4
4
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
5
5
|
import type { ReactionOptions } from './reactionOptions';
|
|
6
6
|
export type SimpleReactionsListProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = Partial<Pick<MessageContextValue, 'handleFetchReactions' | 'handleReaction'>> & {
|
|
7
7
|
/** An array of the own reaction objects to distinguish own reactions visually */
|
|
8
8
|
own_reactions?: ReactionResponse<StreamChatGenerics>[];
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
/**
|
|
10
|
+
* An object that keeps track of the count of each type of reaction on a message
|
|
11
|
+
* @deprecated This override value is no longer taken into account. Use `reaction_groups` to override reaction counts instead.
|
|
12
|
+
* */
|
|
13
|
+
reaction_counts?: Record<string, number>;
|
|
14
|
+
/** An object containing summary for each reaction type on a message */
|
|
15
|
+
reaction_groups?: Record<string, ReactionGroupResponse>;
|
|
13
16
|
/** A list of the currently supported reactions on a message */
|
|
14
17
|
reactionOptions?: ReactionOptions;
|
|
15
18
|
/** An array of the reaction objects to display in the list */
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAqB,MAAM,8BAA8B,CAAC;AAKtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAoCzD,MAAM,MAAM,wBAAwB,CAClC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,sBAAsB,GAAG,gBAAgB,CAAC,CAAC,GAAG;IAClF,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD;;;SAGK;IACL,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACxD,+DAA+D;IAC/D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;CACpD,CAAC;AAyEF,eAAO,MAAM,mBAAmB,qKAES,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ReactionsListProps } from '../ReactionsList';
|
|
2
2
|
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
3
3
|
import type { ReactionsComparator, ReactionSummary } from '../types';
|
|
4
|
-
type SharedReactionListProps = 'own_reactions' | 'reaction_counts' | 'reactionOptions' | 'reactions';
|
|
4
|
+
type SharedReactionListProps = 'own_reactions' | 'reaction_counts' | 'reaction_groups' | 'reactionOptions' | 'reactions';
|
|
5
5
|
type UseProcessReactionsParams = Pick<ReactionsListProps, SharedReactionListProps> & {
|
|
6
6
|
sortReactions?: ReactionsComparator;
|
|
7
7
|
};
|
|
@@ -1 +1 @@
|
|
|
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;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAErE,KAAK,uBAAuB,GACxB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,WAAW,CAAC;AAEhB,KAAK,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,GAAG;IACnF,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,
|
|
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;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAErE,KAAK,uBAAuB,GACxB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,WAAW,CAAC;AAEhB,KAAK,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,GAAG;IACnF,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,mBAMlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,6FAGtB,yBAAyB;;;;CAsGlC,CAAC"}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { useCallback, useMemo } from 'react';
|
|
2
2
|
import { useComponentContext, useMessageContext } from '../../../context';
|
|
3
3
|
export var defaultReactionsSort = function (a, b) {
|
|
4
|
+
if (a.firstReactionAt && b.firstReactionAt) {
|
|
5
|
+
return +a.firstReactionAt - +b.firstReactionAt;
|
|
6
|
+
}
|
|
4
7
|
return a.reactionType.localeCompare(b.reactionType, 'en');
|
|
5
8
|
};
|
|
6
9
|
export var useProcessReactions = function (params) {
|
|
7
10
|
var _a;
|
|
8
|
-
var propOwnReactions = params.own_reactions,
|
|
11
|
+
var propOwnReactions = params.own_reactions, propReactionGroups = params.reaction_groups, propReactionOptions = params.reactionOptions, propReactions = params.reactions, propSortReactions = params.sortReactions;
|
|
9
12
|
var _b = useMessageContext('useProcessReactions'), message = _b.message, contextSortReactions = _b.sortReactions;
|
|
10
13
|
var contextReactionOptions = useComponentContext('useProcessReactions').reactionOptions;
|
|
11
14
|
var reactionOptions = propReactionOptions !== null && propReactionOptions !== void 0 ? propReactionOptions : contextReactionOptions;
|
|
12
15
|
var sortReactions = (_a = propSortReactions !== null && propSortReactions !== void 0 ? propSortReactions : contextSortReactions) !== null && _a !== void 0 ? _a : defaultReactionsSort;
|
|
13
16
|
var latestReactions = propReactions || message.latest_reactions;
|
|
14
17
|
var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions);
|
|
15
|
-
var
|
|
18
|
+
var reactionGroups = propReactionGroups || (message === null || message === void 0 ? void 0 : message.reaction_groups);
|
|
16
19
|
var isOwnReaction = 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]);
|
|
17
20
|
var getEmojiByReactionType = useCallback(function (reactionType) { var _a, _b; return (_b = (_a = reactionOptions.find(function (_a) {
|
|
18
21
|
var type = _a.type;
|
|
@@ -33,21 +36,25 @@ export var useProcessReactions = function (params) {
|
|
|
33
36
|
})) !== null && _a !== void 0 ? _a : [];
|
|
34
37
|
}, [latestReactions]);
|
|
35
38
|
var existingReactions = useMemo(function () {
|
|
36
|
-
if (!
|
|
39
|
+
if (!reactionGroups) {
|
|
37
40
|
return [];
|
|
38
41
|
}
|
|
39
|
-
var unsortedReactions = Object.entries(
|
|
40
|
-
var reactionType = _a[0],
|
|
41
|
-
if (
|
|
42
|
+
var unsortedReactions = Object.entries(reactionGroups).flatMap(function (_a) {
|
|
43
|
+
var reactionType = _a[0], _b = _a[1], count = _b.count, first_reaction_at = _b.first_reaction_at, last_reaction_at = _b.last_reaction_at;
|
|
44
|
+
if (count === 0 || !isSupportedReaction(reactionType)) {
|
|
42
45
|
return [];
|
|
43
46
|
}
|
|
47
|
+
var latestReactedUserNames = getLatestReactedUserNames(reactionType);
|
|
44
48
|
return [
|
|
45
49
|
{
|
|
46
50
|
EmojiComponent: getEmojiByReactionType(reactionType),
|
|
51
|
+
firstReactionAt: first_reaction_at ? new Date(first_reaction_at) : null,
|
|
47
52
|
isOwnReaction: isOwnReaction(reactionType),
|
|
48
|
-
|
|
49
|
-
|
|
53
|
+
lastReactionAt: last_reaction_at ? new Date(last_reaction_at) : null,
|
|
54
|
+
latestReactedUserNames: latestReactedUserNames,
|
|
55
|
+
reactionCount: count,
|
|
50
56
|
reactionType: reactionType,
|
|
57
|
+
unlistedReactedUserCount: count - latestReactedUserNames.length,
|
|
51
58
|
},
|
|
52
59
|
];
|
|
53
60
|
});
|
|
@@ -57,7 +64,7 @@ export var useProcessReactions = function (params) {
|
|
|
57
64
|
getLatestReactedUserNames,
|
|
58
65
|
isOwnReaction,
|
|
59
66
|
isSupportedReaction,
|
|
60
|
-
|
|
67
|
+
reactionGroups,
|
|
61
68
|
sortReactions,
|
|
62
69
|
]);
|
|
63
70
|
var hasReactions = existingReactions.length > 0;
|
|
@@ -2,10 +2,13 @@ import type { ComponentType } from 'react';
|
|
|
2
2
|
import type { ReactionResponse } from 'stream-chat';
|
|
3
3
|
export interface ReactionSummary {
|
|
4
4
|
EmojiComponent: ComponentType | null;
|
|
5
|
+
firstReactionAt: Date | null;
|
|
5
6
|
isOwnReaction: boolean;
|
|
7
|
+
lastReactionAt: Date | null;
|
|
6
8
|
latestReactedUserNames: string[];
|
|
7
9
|
reactionCount: number;
|
|
8
10
|
reactionType: string;
|
|
11
|
+
unlistedReactedUserCount: number;
|
|
9
12
|
}
|
|
10
13
|
export type ReactionsComparator = (a: ReactionSummary, b: ReactionSummary) => number;
|
|
11
14
|
export type ReactionDetailsComparator = (a: ReactionResponse, b: ReactionResponse) => number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,OAAO,CAAC;IACvB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,MAAM,CAAC;AAErF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Window = require('./Window-
|
|
5
|
+
var Window = require('./Window-996f3be8.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var streamChat = require('stream-chat');
|
|
8
8
|
var throttle = require('lodash.throttle');
|
|
@@ -1344,7 +1344,7 @@ function VirtualizedMessageList(props) {
|
|
|
1344
1344
|
return (React__default["default"].createElement(VirtualizedMessageListWithContext, Window.__assign({ channel: channel, channelUnreadUiState: channelUnreadUiState, hasMore: !!hasMore, hasMoreNewer: !!hasMoreNewer, highlightedMessageId: highlightedMessageId, jumpToLatestMessage: jumpToLatestMessage, loadingMore: !!loadingMore, loadingMoreNewer: !!loadingMoreNewer, loadMore: loadMore, loadMoreNewer: loadMoreNewer, messages: messages, notifications: notifications, read: read, suppressAutoscroll: suppressAutoscroll }, props)));
|
|
1345
1345
|
}
|
|
1346
1346
|
|
|
1347
|
-
var version = '11.
|
|
1347
|
+
var version = '11.16.0';
|
|
1348
1348
|
|
|
1349
1349
|
var useChat = function (_a) {
|
|
1350
1350
|
var _b, _c;
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "11.
|
|
1
|
+
export declare const version = "11.16.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export var version = '11.
|
|
1
|
+
export var version = '11.16.0';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stream-chat-react",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.16.0",
|
|
4
4
|
"description": "React components to create chat conversations or livestream style chat",
|
|
5
5
|
"author": "GetStream",
|
|
6
6
|
"homepage": "https://getstream.io/chat/",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"emoji-mart": "^5.4.0",
|
|
105
105
|
"react": "^18.0.0 || ^17.0.0 || ^16.8.0",
|
|
106
106
|
"react-dom": "^18.0.0 || ^17.0.0 || ^16.8.0",
|
|
107
|
-
"stream-chat": "^8.
|
|
107
|
+
"stream-chat": "^8.30.0"
|
|
108
108
|
},
|
|
109
109
|
"peerDependenciesMeta": {
|
|
110
110
|
"emoji-mart": {
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
"rollup-plugin-url": "^3.0.1",
|
|
227
227
|
"rollup-plugin-visualizer": "^4.2.0",
|
|
228
228
|
"semantic-release": "^19.0.5",
|
|
229
|
-
"stream-chat": "^8.
|
|
229
|
+
"stream-chat": "^8.30.0",
|
|
230
230
|
"style-loader": "^2.0.0",
|
|
231
231
|
"ts-jest": "^28.0.8",
|
|
232
232
|
"typescript": "^4.7.4",
|