stream-chat-react 10.11.0 → 10.12.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/browser.full-bundle.js +114 -32
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +5 -5
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/ChannelPreview/ChannelPreview.d.ts +3 -0
- package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
- package/dist/components/ChannelPreview/ChannelPreview.js +6 -1
- package/dist/components/ChannelPreview/hooks/index.d.ts +1 -0
- package/dist/components/ChannelPreview/hooks/index.d.ts.map +1 -1
- package/dist/components/ChannelPreview/hooks/index.js +1 -0
- package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.d.ts +17 -0
- package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.d.ts.map +1 -0
- package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.js +58 -0
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +4 -3
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts.map +1 -1
- package/dist/components/ChannelSearch/hooks/useChannelSearch.js +52 -31
- package/dist/index.cjs.js +114 -32
- package/dist/index.cjs.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -46834,6 +46834,63 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
46834
46834
|
return muted;
|
|
46835
46835
|
};
|
|
46836
46836
|
|
|
46837
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};exports.MessageDeliveryStatus = void 0;
|
|
46838
|
+
(function (MessageDeliveryStatus) {
|
|
46839
|
+
MessageDeliveryStatus["DELIVERED"] = "delivered";
|
|
46840
|
+
MessageDeliveryStatus["READ"] = "read";
|
|
46841
|
+
})(exports.MessageDeliveryStatus || (exports.MessageDeliveryStatus = {}));
|
|
46842
|
+
var useMessageDeliveryStatus = function (_a) {
|
|
46843
|
+
var channel = _a.channel, lastMessage = _a.lastMessage;
|
|
46844
|
+
var client = useChatContext().client;
|
|
46845
|
+
var _b = React$2.useState(), messageDeliveryStatus = _b[0], setMessageDeliveryStatus = _b[1];
|
|
46846
|
+
var isOwnMessage = React$2.useCallback(function (message) { var _a; return client.user && ((_a = message === null || message === void 0 ? void 0 : message.user) === null || _a === void 0 ? void 0 : _a.id) === client.user.id; }, [client]);
|
|
46847
|
+
React$2.useEffect(function () {
|
|
46848
|
+
var lastMessageIsOwn = isOwnMessage(lastMessage);
|
|
46849
|
+
if (!(lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.created_at) || !lastMessageIsOwn)
|
|
46850
|
+
return;
|
|
46851
|
+
var lastMessageCreatedAtDate = typeof lastMessage.created_at === 'string'
|
|
46852
|
+
? new Date(lastMessage.created_at)
|
|
46853
|
+
: lastMessage.created_at;
|
|
46854
|
+
var channelReadByOthersAfterLastMessageUpdate = Object.values(channel.state.read).some(function (_a) {
|
|
46855
|
+
var channelLastMarkedReadDate = _a.last_read, user = _a.user;
|
|
46856
|
+
var ignoreOwnReadStatus = client.user && user.id !== client.user.id;
|
|
46857
|
+
return ignoreOwnReadStatus && lastMessageCreatedAtDate < channelLastMarkedReadDate;
|
|
46858
|
+
});
|
|
46859
|
+
setMessageDeliveryStatus(channelReadByOthersAfterLastMessageUpdate
|
|
46860
|
+
? exports.MessageDeliveryStatus.READ
|
|
46861
|
+
: exports.MessageDeliveryStatus.DELIVERED);
|
|
46862
|
+
}, [channel.state.read, client, isOwnMessage, lastMessage]);
|
|
46863
|
+
React$2.useEffect(function () {
|
|
46864
|
+
var handleMessageNew = function (event) {
|
|
46865
|
+
// the last message is not mine, so do not show the delivery status
|
|
46866
|
+
if (!isOwnMessage(event.message)) {
|
|
46867
|
+
return setMessageDeliveryStatus(undefined);
|
|
46868
|
+
}
|
|
46869
|
+
return setMessageDeliveryStatus(exports.MessageDeliveryStatus.DELIVERED);
|
|
46870
|
+
};
|
|
46871
|
+
channel.on('message.new', handleMessageNew);
|
|
46872
|
+
return function () {
|
|
46873
|
+
channel.off('message.new', handleMessageNew);
|
|
46874
|
+
};
|
|
46875
|
+
}, [channel, client, isOwnMessage]);
|
|
46876
|
+
React$2.useEffect(function () {
|
|
46877
|
+
if (!isOwnMessage(lastMessage))
|
|
46878
|
+
return;
|
|
46879
|
+
var handleMarkRead = function (event) {
|
|
46880
|
+
var _a, _b;
|
|
46881
|
+
if (((_a = event.user) === null || _a === void 0 ? void 0 : _a.id) !== ((_b = client.user) === null || _b === void 0 ? void 0 : _b.id))
|
|
46882
|
+
setMessageDeliveryStatus(exports.MessageDeliveryStatus.READ);
|
|
46883
|
+
};
|
|
46884
|
+
channel.on('message.read', handleMarkRead);
|
|
46885
|
+
return function () {
|
|
46886
|
+
channel.off('message.read', handleMarkRead);
|
|
46887
|
+
};
|
|
46888
|
+
}, [channel, client, lastMessage, isOwnMessage]);
|
|
46889
|
+
return {
|
|
46890
|
+
messageDeliveryStatus: messageDeliveryStatus,
|
|
46891
|
+
};
|
|
46892
|
+
};
|
|
46893
|
+
|
|
46837
46894
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var ChannelPreview = function (props) {
|
|
46838
46895
|
var channel = props.channel, _a = props.Preview, Preview = _a === void 0 ? ChannelPreviewMessenger : _a, channelUpdateCount = props.channelUpdateCount;
|
|
46839
46896
|
var _b = useChatContext('ChannelPreview'), activeChannel = _b.channel, client = _b.client, setActiveChannel = _b.setActiveChannel;
|
|
@@ -46841,6 +46898,10 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
46841
46898
|
var _d = useChannelPreviewInfo({ channel: channel }), displayImage = _d.displayImage, displayTitle = _d.displayTitle;
|
|
46842
46899
|
var _e = React$2.useState(channel.state.messages[channel.state.messages.length - 1]), lastMessage = _e[0], setLastMessage = _e[1];
|
|
46843
46900
|
var _f = React$2.useState(0), unread = _f[0], setUnread = _f[1];
|
|
46901
|
+
var messageDeliveryStatus = useMessageDeliveryStatus({
|
|
46902
|
+
channel: channel,
|
|
46903
|
+
lastMessage: lastMessage,
|
|
46904
|
+
}).messageDeliveryStatus;
|
|
46844
46905
|
var isActive = (activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.cid) === channel.cid;
|
|
46845
46906
|
var muted = useIsChannelMuted(channel).muted;
|
|
46846
46907
|
React$2.useEffect(function () {
|
|
@@ -46880,24 +46941,29 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
46880
46941
|
if (!Preview)
|
|
46881
46942
|
return null;
|
|
46882
46943
|
var latestMessage = getLatestMessagePreview(channel, t, userLanguage);
|
|
46883
|
-
return (React__default["default"].createElement(Preview, __assign({}, props, { active: isActive, displayImage: displayImage, displayTitle: displayTitle, lastMessage: lastMessage, latestMessage: latestMessage, setActiveChannel: setActiveChannel, unread: unread })));
|
|
46944
|
+
return (React__default["default"].createElement(Preview, __assign({}, props, { active: isActive, displayImage: displayImage, displayTitle: displayTitle, lastMessage: lastMessage, latestMessage: latestMessage, messageDeliveryStatus: messageDeliveryStatus, setActiveChannel: setActiveChannel, unread: unread })));
|
|
46884
46945
|
};
|
|
46885
46946
|
|
|
46886
46947
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var isChannel = function (output) { return output.cid != null; };
|
|
46887
46948
|
|
|
46888
46949
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChannelSearch = function (_a) {
|
|
46889
|
-
var _b = _a.channelType, channelType = _b === void 0 ? 'messaging' : _b, _c = _a.clearSearchOnClickOutside, clearSearchOnClickOutside = _c === void 0 ? true : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, onSearchCallback = _a.onSearch, onSearchExit = _a.onSearchExit, onSelectResult = _a.onSelectResult, _e = _a.searchForChannels, searchForChannels =
|
|
46890
|
-
var
|
|
46891
|
-
var
|
|
46892
|
-
var
|
|
46893
|
-
var
|
|
46894
|
-
var
|
|
46950
|
+
var _b = _a.channelType, channelType = _b === void 0 ? 'messaging' : _b, _c = _a.clearSearchOnClickOutside, clearSearchOnClickOutside = _c === void 0 ? true : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, onSearchCallback = _a.onSearch, onSearchExit = _a.onSearchExit, onSelectResult = _a.onSelectResult, _e = _a.searchDebounceIntervalMs, searchDebounceIntervalMs = _e === void 0 ? 300 : _e, _f = _a.searchForChannels, searchForChannels = _f === void 0 ? false : _f, searchFunction = _a.searchFunction, searchQueryParams = _a.searchQueryParams, setChannels = _a.setChannels;
|
|
46951
|
+
var _g = useChatContext('useChannelSearch'), client = _g.client, setActiveChannel = _g.setActiveChannel, themeVersion = _g.themeVersion;
|
|
46952
|
+
var _h = React$2.useState(false), inputIsFocused = _h[0], setInputIsFocused = _h[1];
|
|
46953
|
+
var _j = React$2.useState(''), query = _j[0], setQuery = _j[1];
|
|
46954
|
+
var _k = React$2.useState([]), results = _k[0], setResults = _k[1];
|
|
46955
|
+
var _l = React$2.useState(false), searching = _l[0], setSearching = _l[1];
|
|
46956
|
+
var searchQueryPromiseInProgress = React$2.useRef();
|
|
46957
|
+
var shouldIgnoreQueryResults = React$2.useRef(false);
|
|
46895
46958
|
var inputRef = React$2.useRef(null);
|
|
46896
46959
|
var searchBarRef = React$2.useRef(null);
|
|
46897
46960
|
var clearState = React$2.useCallback(function () {
|
|
46898
46961
|
setQuery('');
|
|
46899
46962
|
setResults([]);
|
|
46900
46963
|
setSearching(false);
|
|
46964
|
+
if (searchQueryPromiseInProgress.current) {
|
|
46965
|
+
shouldIgnoreQueryResults.current = true;
|
|
46966
|
+
}
|
|
46901
46967
|
}, []);
|
|
46902
46968
|
var activateSearch = React$2.useCallback(function () {
|
|
46903
46969
|
setInputIsFocused(true);
|
|
@@ -46980,45 +47046,56 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
46980
47046
|
});
|
|
46981
47047
|
}); }, [clearSearchOnClickOutside, client, exitSearch, onSelectResult, setActiveChannel, setChannels]);
|
|
46982
47048
|
var getChannels = React$2.useCallback(function (text) { return __awaiter(void 0, void 0, void 0, function () {
|
|
46983
|
-
var
|
|
47049
|
+
var results, userQueryPromise, users, channelQueryPromise, _a, channels, users, error_1;
|
|
46984
47050
|
var _b, _c, _d, _e, _f, _g;
|
|
46985
47051
|
return __generator(this, function (_h) {
|
|
46986
47052
|
switch (_h.label) {
|
|
46987
47053
|
case 0:
|
|
46988
|
-
|
|
46989
|
-
return [2 /*return*/];
|
|
46990
|
-
setSearching(true);
|
|
47054
|
+
results = [];
|
|
46991
47055
|
_h.label = 1;
|
|
46992
47056
|
case 1:
|
|
46993
47057
|
_h.trys.push([1, 6, , 7]);
|
|
46994
|
-
|
|
47058
|
+
userQueryPromise = client.queryUsers(__assign({ $or: [{ id: { $autocomplete: text } }, { name: { $autocomplete: text } }], id: { $ne: client.userID } }, (_b = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.userFilters) === null || _b === void 0 ? void 0 : _b.filters), __assign({ id: 1 }, (_c = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.userFilters) === null || _c === void 0 ? void 0 : _c.sort), __assign({ limit: 8 }, (_d = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.userFilters) === null || _d === void 0 ? void 0 : _d.options));
|
|
47059
|
+
if (!!searchForChannels) return [3 /*break*/, 3];
|
|
47060
|
+
searchQueryPromiseInProgress.current = userQueryPromise;
|
|
47061
|
+
return [4 /*yield*/, searchQueryPromiseInProgress.current];
|
|
46995
47062
|
case 2:
|
|
46996
|
-
userResponse = _h.sent();
|
|
46997
|
-
if (!searchForChannels) return [3 /*break*/, 4];
|
|
46998
|
-
channelResponse = client.queryChannels(__assign({ name: { $autocomplete: text } }, (_e = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _e === void 0 ? void 0 : _e.filters), ((_f = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _f === void 0 ? void 0 : _f.sort) || {}, __assign({ limit: 5 }, (_g = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _g === void 0 ? void 0 : _g.options));
|
|
46999
|
-
return [4 /*yield*/, Promise.all([channelResponse, userResponse])];
|
|
47000
|
-
case 3:
|
|
47001
|
-
_a = _h.sent(), channels = _a[0], users_1 = _a[1].users;
|
|
47002
|
-
setResults(__spreadArray(__spreadArray([], channels, true), users_1, true));
|
|
47003
|
-
setSearching(false);
|
|
47004
|
-
return [2 /*return*/];
|
|
47005
|
-
case 4: return [4 /*yield*/, Promise.resolve(userResponse)];
|
|
47006
|
-
case 5:
|
|
47007
47063
|
users = (_h.sent()).users;
|
|
47008
|
-
|
|
47009
|
-
return [3 /*break*/,
|
|
47064
|
+
results = users;
|
|
47065
|
+
return [3 /*break*/, 5];
|
|
47066
|
+
case 3:
|
|
47067
|
+
channelQueryPromise = client.queryChannels(__assign({ name: { $autocomplete: text } }, (_e = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _e === void 0 ? void 0 : _e.filters), ((_f = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _f === void 0 ? void 0 : _f.sort) || {}, __assign({ limit: 5 }, (_g = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _g === void 0 ? void 0 : _g.options));
|
|
47068
|
+
searchQueryPromiseInProgress.current = Promise.all([
|
|
47069
|
+
channelQueryPromise,
|
|
47070
|
+
userQueryPromise,
|
|
47071
|
+
]);
|
|
47072
|
+
return [4 /*yield*/, searchQueryPromiseInProgress.current];
|
|
47073
|
+
case 4:
|
|
47074
|
+
_a = _h.sent(), channels = _a[0], users = _a[1].users;
|
|
47075
|
+
results = __spreadArray(__spreadArray([], channels, true), users, true);
|
|
47076
|
+
_h.label = 5;
|
|
47077
|
+
case 5: return [3 /*break*/, 7];
|
|
47010
47078
|
case 6:
|
|
47011
47079
|
error_1 = _h.sent();
|
|
47012
|
-
clearState();
|
|
47013
47080
|
console.error(error_1);
|
|
47014
47081
|
return [3 /*break*/, 7];
|
|
47015
47082
|
case 7:
|
|
47016
47083
|
setSearching(false);
|
|
47084
|
+
if (!shouldIgnoreQueryResults.current) {
|
|
47085
|
+
setResults(results);
|
|
47086
|
+
}
|
|
47087
|
+
else {
|
|
47088
|
+
shouldIgnoreQueryResults.current = false;
|
|
47089
|
+
}
|
|
47090
|
+
searchQueryPromiseInProgress.current = undefined;
|
|
47017
47091
|
return [2 /*return*/];
|
|
47018
47092
|
}
|
|
47019
47093
|
});
|
|
47020
|
-
}); }, [client,
|
|
47021
|
-
var
|
|
47094
|
+
}); }, [client, searchForChannels, searchQueryParams]);
|
|
47095
|
+
var scheduleGetChannels = React$2.useCallback(lodash_debounce(getChannels, searchDebounceIntervalMs), [
|
|
47096
|
+
getChannels,
|
|
47097
|
+
searchDebounceIntervalMs,
|
|
47098
|
+
]);
|
|
47022
47099
|
var onSearch = React$2.useCallback(function (event) {
|
|
47023
47100
|
event.preventDefault();
|
|
47024
47101
|
if (disabled)
|
|
@@ -47030,12 +47107,17 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
47030
47107
|
setSearching: setSearching,
|
|
47031
47108
|
}, event);
|
|
47032
47109
|
}
|
|
47033
|
-
else {
|
|
47110
|
+
else if (event.target.value) {
|
|
47111
|
+
setSearching(true);
|
|
47034
47112
|
setQuery(event.target.value);
|
|
47035
|
-
|
|
47113
|
+
scheduleGetChannels(event.target.value);
|
|
47114
|
+
}
|
|
47115
|
+
else if (!event.target.value) {
|
|
47116
|
+
clearState();
|
|
47117
|
+
scheduleGetChannels.cancel();
|
|
47036
47118
|
}
|
|
47037
47119
|
onSearchCallback === null || onSearchCallback === void 0 ? void 0 : onSearchCallback(event);
|
|
47038
|
-
}, [disabled,
|
|
47120
|
+
}, [clearState, disabled, scheduleGetChannels, onSearchCallback, searchFunction]);
|
|
47039
47121
|
return {
|
|
47040
47122
|
activateSearch: activateSearch,
|
|
47041
47123
|
clearState: clearState,
|
|
@@ -47440,7 +47522,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
47440
47522
|
|
|
47441
47523
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
|
|
47442
47524
|
|
|
47443
|
-
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.
|
|
47525
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.12.0';
|
|
47444
47526
|
|
|
47445
47527
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
|
|
47446
47528
|
var _b, _c;
|