stream-chat-react-native-core 6.7.3-beta.1 → 6.7.3-beta.3
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/lib/commonjs/components/Channel/Channel.js +296 -293
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useMessageListPagination.js +133 -147
- package/lib/commonjs/components/Channel/hooks/useMessageListPagination.js.map +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +7 -12
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +167 -179
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +60 -37
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +450 -459
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/hooks/index.js +11 -0
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/useStableCallback.js +13 -0
- package/lib/commonjs/hooks/useStableCallback.js.map +1 -0
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Channel/Channel.js +296 -293
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useMessageListPagination.js +133 -147
- package/lib/module/components/Channel/hooks/useMessageListPagination.js.map +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +7 -12
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +167 -179
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js +60 -37
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +450 -459
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/hooks/index.js +11 -0
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useStableCallback.js +13 -0
- package/lib/module/hooks/useStableCallback.js.map +1 -0
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts +3 -3
- package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts.map +1 -1
- package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleView.d.ts +3 -0
- package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleView.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +4 -0
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +1 -1
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts.map +1 -1
- package/lib/typescript/hooks/index.d.ts +1 -0
- package/lib/typescript/hooks/index.d.ts.map +1 -1
- package/lib/typescript/hooks/useStableCallback.d.ts +26 -0
- package/lib/typescript/hooks/useStableCallback.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/Channel/Channel.tsx +462 -431
- package/src/components/Channel/__tests__/Channel.test.js +8 -3
- package/src/components/Channel/hooks/useMessageListPagination.tsx +152 -147
- package/src/components/KeyboardCompatibleView/KeyboardCompatibleView.tsx +6 -4
- package/src/components/MessageList/MessageList.tsx +147 -112
- package/src/components/MessageList/hooks/useMessageList.ts +69 -38
- package/src/contexts/messageInputContext/MessageInputContext.tsx +293 -267
- package/src/contexts/messageInputContext/__tests__/pickFile.test.tsx +2 -1
- package/src/contexts/messagesContext/MessagesContext.tsx +1 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useStableCallback.ts +37 -0
- package/src/version.json +1 -1
|
@@ -37,6 +37,7 @@ var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
|
37
37
|
var _ThreadContext = require("../../contexts/threadContext/ThreadContext");
|
|
38
38
|
var _TranslationContext = require("../../contexts/translationContext/TranslationContext");
|
|
39
39
|
var _TypingContext = require("../../contexts/typingContext/TypingContext");
|
|
40
|
+
var _hooks = require("../../hooks");
|
|
40
41
|
var _useAppStateListener = require("../../hooks/useAppStateListener");
|
|
41
42
|
var _icons = require("../../icons");
|
|
42
43
|
var _native = require("../../native");
|
|
@@ -518,6 +519,9 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
518
519
|
setTargetedMessage = _useTargetedMessage.setTargetedMessage,
|
|
519
520
|
targetedMessage = _useTargetedMessage.targetedMessage;
|
|
520
521
|
var uploadAbortControllerRef = (0, _react.useRef)(new Map());
|
|
522
|
+
var optimisticallyUpdatedNewMessages = (0, _react.useMemo)(function () {
|
|
523
|
+
return new Set();
|
|
524
|
+
}, []);
|
|
521
525
|
var channelId = (channel == null ? void 0 : channel.id) || '';
|
|
522
526
|
var pollCreationEnabled = !channel.disconnected && !!(channel != null && channel.id) && (channel == null || (_channel$getConfig = channel.getConfig()) == null ? void 0 : _channel$getConfig.polls);
|
|
523
527
|
var _useChannelDataState = (0, _useChannelDataState2.useChannelDataState)(channel),
|
|
@@ -537,16 +541,29 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
537
541
|
loadMore = _useMessageListPagina.loadMore,
|
|
538
542
|
loadMoreRecent = _useMessageListPagina.loadMoreRecent,
|
|
539
543
|
channelMessagesState = _useMessageListPagina.state;
|
|
540
|
-
var
|
|
544
|
+
var setReadThrottled = (0, _react.useMemo)(function () {
|
|
545
|
+
return (0, _throttle["default"])(function () {
|
|
546
|
+
if (channel) {
|
|
547
|
+
setRead(channel);
|
|
548
|
+
}
|
|
549
|
+
}, stateUpdateThrottleInterval, throttleOptions);
|
|
550
|
+
}, [channel, stateUpdateThrottleInterval, setRead]);
|
|
551
|
+
var copyMessagesStateFromChannelThrottled = (0, _react.useMemo)(function () {
|
|
552
|
+
return (0, _throttle["default"])(function () {
|
|
553
|
+
if (channel) {
|
|
554
|
+
copyMessagesStateFromChannel(channel);
|
|
555
|
+
}
|
|
556
|
+
}, newMessageStateUpdateThrottleInterval, throttleOptions);
|
|
557
|
+
}, [channel, newMessageStateUpdateThrottleInterval, copyMessagesStateFromChannel]);
|
|
541
558
|
var copyChannelState = (0, _react.useMemo)(function () {
|
|
542
559
|
return (0, _throttle["default"])(function () {
|
|
543
560
|
if (channel) {
|
|
544
561
|
copyStateFromChannel(channel);
|
|
545
562
|
copyMessagesStateFromChannel(channel);
|
|
546
563
|
}
|
|
547
|
-
},
|
|
548
|
-
}, [channel,
|
|
549
|
-
var handleEvent = function
|
|
564
|
+
}, stateUpdateThrottleInterval, throttleOptions);
|
|
565
|
+
}, [stateUpdateThrottleInterval, channel, copyStateFromChannel, copyMessagesStateFromChannel]);
|
|
566
|
+
var handleEvent = (0, _hooks.useStableCallback)(function (event) {
|
|
550
567
|
if (shouldSyncChannel) {
|
|
551
568
|
if (event.type.startsWith('poll.') || event.type === 'user.watching.start' || event.type === 'user.watching.stop') {
|
|
552
569
|
return;
|
|
@@ -586,10 +603,23 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
586
603
|
setChannelUnreadState(undefined);
|
|
587
604
|
}
|
|
588
605
|
if (channel && channel.initialized) {
|
|
606
|
+
if (event.type === 'message.new' || event.type === 'notification.message_new') {
|
|
607
|
+
var _event$message$id, _event$message2, _event$user2;
|
|
608
|
+
var _messageId = (_event$message$id = (_event$message2 = event.message) == null ? void 0 : _event$message2.id) != null ? _event$message$id : '';
|
|
609
|
+
if (((_event$user2 = event.user) == null ? void 0 : _event$user2.id) !== client.userID || !optimisticallyUpdatedNewMessages.has(_messageId)) {
|
|
610
|
+
copyMessagesStateFromChannelThrottled();
|
|
611
|
+
}
|
|
612
|
+
optimisticallyUpdatedNewMessages["delete"](_messageId);
|
|
613
|
+
return;
|
|
614
|
+
}
|
|
615
|
+
if (event.type === 'message.read' || event.type === 'notification.mark_read') {
|
|
616
|
+
setReadThrottled();
|
|
617
|
+
return;
|
|
618
|
+
}
|
|
589
619
|
copyChannelState();
|
|
590
620
|
}
|
|
591
621
|
}
|
|
592
|
-
};
|
|
622
|
+
});
|
|
593
623
|
(0, _react.useEffect)(function () {
|
|
594
624
|
var listener;
|
|
595
625
|
var initChannel = function () {
|
|
@@ -601,7 +631,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
601
631
|
case 0:
|
|
602
632
|
setLastRead(new Date());
|
|
603
633
|
unreadCount = channel.countUnread();
|
|
604
|
-
if (!(!channel || !shouldSyncChannel
|
|
634
|
+
if (!(!channel || !shouldSyncChannel)) {
|
|
605
635
|
_context.next = 4;
|
|
606
636
|
break;
|
|
607
637
|
}
|
|
@@ -695,16 +725,6 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
695
725
|
unsubscribe = _client$on.unsubscribe;
|
|
696
726
|
return unsubscribe;
|
|
697
727
|
}, [channel == null ? void 0 : channel.cid, client]);
|
|
698
|
-
(0, _react.useEffect)(function () {
|
|
699
|
-
var handleEvent = function handleEvent(event) {
|
|
700
|
-
if (channel.cid === event.cid) {
|
|
701
|
-
setRead(channel);
|
|
702
|
-
}
|
|
703
|
-
};
|
|
704
|
-
var _client$on2 = client.on('notification.mark_read', handleEvent),
|
|
705
|
-
unsubscribe = _client$on2.unsubscribe;
|
|
706
|
-
return unsubscribe;
|
|
707
|
-
}, [channel, client, setRead]);
|
|
708
728
|
var threadPropsExists = !!threadProps;
|
|
709
729
|
(0, _react.useEffect)(function () {
|
|
710
730
|
if (threadProps && shouldSyncChannel) {
|
|
@@ -728,7 +748,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
728
748
|
}
|
|
729
749
|
}, [thread == null ? void 0 : thread.id, channelId]);
|
|
730
750
|
(0, _useAppStateListener.useAppStateListener)(undefined, handleAppBackground);
|
|
731
|
-
var
|
|
751
|
+
var markReadInternal = (0, _throttle["default"])(function () {
|
|
732
752
|
var _ref2 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(options) {
|
|
733
753
|
var _ref3, _ref3$updateChannelUn, updateChannelUnreadState, response;
|
|
734
754
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
@@ -778,147 +798,138 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
778
798
|
return _ref2.apply(this, arguments);
|
|
779
799
|
};
|
|
780
800
|
}(), defaultThrottleInterval, throttleOptions);
|
|
781
|
-
var
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
break;
|
|
790
|
-
}
|
|
791
|
-
return _context3.abrupt("return");
|
|
792
|
-
case 2:
|
|
793
|
-
setThreadLoadingMore(true);
|
|
794
|
-
_context3.prev = 3;
|
|
795
|
-
parentID = thread.id;
|
|
796
|
-
limit = 50;
|
|
797
|
-
channel.state.threads[parentID] = [];
|
|
798
|
-
_context3.next = 9;
|
|
799
|
-
return channel.getReplies(parentID, {
|
|
800
|
-
limit: limit
|
|
801
|
-
});
|
|
802
|
-
case 9:
|
|
803
|
-
queryResponse = _context3.sent;
|
|
804
|
-
updatedHasMore = queryResponse.messages.length === limit;
|
|
805
|
-
updatedThreadMessages = channel.state.threads[parentID] || [];
|
|
806
|
-
loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);
|
|
807
|
-
_context3.next = 15;
|
|
808
|
-
return channel.getMessagesById([parentID]);
|
|
809
|
-
case 15:
|
|
810
|
-
_yield$channel$getMes = _context3.sent;
|
|
811
|
-
messages = _yield$channel$getMes.messages;
|
|
812
|
-
_messages = (0, _slicedToArray2["default"])(messages, 1), threadMessage = _messages[0];
|
|
813
|
-
if (threadMessage && !threadInstance) {
|
|
814
|
-
formattedMessage = channel.state.formatMessage(threadMessage);
|
|
815
|
-
setThread(formattedMessage);
|
|
816
|
-
}
|
|
817
|
-
_context3.next = 27;
|
|
801
|
+
var markRead = (0, _hooks.useStableCallback)(markReadInternal);
|
|
802
|
+
var reloadThread = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
|
|
803
|
+
var parentID, limit, queryResponse, updatedHasMore, updatedThreadMessages, _yield$channel$getMes, messages, _messages, threadMessage, formattedMessage;
|
|
804
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
805
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
806
|
+
case 0:
|
|
807
|
+
if (!(!channel || !(thread != null && thread.id))) {
|
|
808
|
+
_context3.next = 2;
|
|
818
809
|
break;
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
setError(
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
810
|
+
}
|
|
811
|
+
return _context3.abrupt("return");
|
|
812
|
+
case 2:
|
|
813
|
+
setThreadLoadingMore(true);
|
|
814
|
+
_context3.prev = 3;
|
|
815
|
+
parentID = thread.id;
|
|
816
|
+
limit = 50;
|
|
817
|
+
channel.state.threads[parentID] = [];
|
|
818
|
+
_context3.next = 9;
|
|
819
|
+
return channel.getReplies(parentID, {
|
|
820
|
+
limit: limit
|
|
821
|
+
});
|
|
822
|
+
case 9:
|
|
823
|
+
queryResponse = _context3.sent;
|
|
824
|
+
updatedHasMore = queryResponse.messages.length === limit;
|
|
825
|
+
updatedThreadMessages = channel.state.threads[parentID] || [];
|
|
826
|
+
loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);
|
|
827
|
+
_context3.next = 15;
|
|
828
|
+
return channel.getMessagesById([parentID]);
|
|
829
|
+
case 15:
|
|
830
|
+
_yield$channel$getMes = _context3.sent;
|
|
831
|
+
messages = _yield$channel$getMes.messages;
|
|
832
|
+
_messages = (0, _slicedToArray2["default"])(messages, 1), threadMessage = _messages[0];
|
|
833
|
+
if (threadMessage && !threadInstance) {
|
|
834
|
+
formattedMessage = channel.state.formatMessage(threadMessage);
|
|
835
|
+
setThread(formattedMessage);
|
|
836
|
+
}
|
|
837
|
+
_context3.next = 27;
|
|
838
|
+
break;
|
|
839
|
+
case 21:
|
|
840
|
+
_context3.prev = 21;
|
|
841
|
+
_context3.t0 = _context3["catch"](3);
|
|
842
|
+
console.warn('Thread loading request failed with error', _context3.t0);
|
|
843
|
+
if (_context3.t0 instanceof Error) {
|
|
844
|
+
setError(_context3.t0);
|
|
845
|
+
} else {
|
|
846
|
+
setError(true);
|
|
847
|
+
}
|
|
848
|
+
setThreadLoadingMore(false);
|
|
849
|
+
throw _context3.t0;
|
|
850
|
+
case 27:
|
|
851
|
+
case "end":
|
|
852
|
+
return _context3.stop();
|
|
853
|
+
}
|
|
854
|
+
}, _callee3, null, [[3, 21]]);
|
|
855
|
+
})));
|
|
856
|
+
var resyncChannel = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() {
|
|
857
|
+
var parseMessage, _channelMessagesState, failedMessages, failedThreadMessages;
|
|
858
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
859
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
860
|
+
case 0:
|
|
861
|
+
if (!(!channel || syncingChannelRef.current)) {
|
|
862
|
+
_context4.next = 2;
|
|
863
|
+
break;
|
|
864
|
+
}
|
|
865
|
+
return _context4.abrupt("return");
|
|
866
|
+
case 2:
|
|
867
|
+
syncingChannelRef.current = true;
|
|
868
|
+
setError(false);
|
|
869
|
+
if (!(channelMessagesState != null && channelMessagesState.messages)) {
|
|
858
870
|
_context4.next = 7;
|
|
859
|
-
return channel == null ? void 0 : channel.watch({
|
|
860
|
-
messages: {
|
|
861
|
-
limit: channelMessagesState.messages.length + 30
|
|
862
|
-
}
|
|
863
|
-
});
|
|
864
|
-
case 7:
|
|
865
|
-
parseMessage = function parseMessage(message) {
|
|
866
|
-
var _message$pinned_at, _message$updated_at;
|
|
867
|
-
return Object.assign({}, message, {
|
|
868
|
-
created_at: message.created_at.toString(),
|
|
869
|
-
pinned_at: (_message$pinned_at = message.pinned_at) == null ? void 0 : _message$pinned_at.toString(),
|
|
870
|
-
updated_at: (_message$updated_at = message.updated_at) == null ? void 0 : _message$updated_at.toString()
|
|
871
|
-
});
|
|
872
|
-
};
|
|
873
|
-
_context4.prev = 8;
|
|
874
|
-
if (thread) {
|
|
875
|
-
_context4.next = 16;
|
|
876
|
-
break;
|
|
877
|
-
}
|
|
878
|
-
copyChannelState();
|
|
879
|
-
failedMessages = (_channelMessagesState = channelMessagesState.messages) == null ? void 0 : _channelMessagesState.filter(function (message) {
|
|
880
|
-
return message.status === _utils.MessageStatusTypes.FAILED;
|
|
881
|
-
}).map(parseMessage);
|
|
882
|
-
if (failedMessages != null && failedMessages.length) {
|
|
883
|
-
channel.state.addMessagesSorted(failedMessages);
|
|
884
|
-
}
|
|
885
|
-
channel.state.setIsUpToDate(true);
|
|
886
|
-
_context4.next = 20;
|
|
887
871
|
break;
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
return message.status === _utils.MessageStatusTypes.FAILED;
|
|
894
|
-
}).map(parseMessage) : [];
|
|
895
|
-
if (failedThreadMessages.length) {
|
|
896
|
-
channel.state.addMessagesSorted(failedThreadMessages);
|
|
897
|
-
setThreadMessages((0, _toConsumableArray2["default"])(channel.state.threads[thread.id]));
|
|
872
|
+
}
|
|
873
|
+
_context4.next = 7;
|
|
874
|
+
return channel == null ? void 0 : channel.watch({
|
|
875
|
+
messages: {
|
|
876
|
+
limit: channelMessagesState.messages.length + 30
|
|
898
877
|
}
|
|
899
|
-
|
|
900
|
-
|
|
878
|
+
});
|
|
879
|
+
case 7:
|
|
880
|
+
parseMessage = function parseMessage(message) {
|
|
881
|
+
var _message$pinned_at, _message$updated_at;
|
|
882
|
+
return Object.assign({}, message, {
|
|
883
|
+
created_at: message.created_at.toString(),
|
|
884
|
+
pinned_at: (_message$pinned_at = message.pinned_at) == null ? void 0 : _message$pinned_at.toString(),
|
|
885
|
+
updated_at: (_message$updated_at = message.updated_at) == null ? void 0 : _message$updated_at.toString()
|
|
886
|
+
});
|
|
887
|
+
};
|
|
888
|
+
_context4.prev = 8;
|
|
889
|
+
if (thread) {
|
|
890
|
+
_context4.next = 16;
|
|
901
891
|
break;
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
892
|
+
}
|
|
893
|
+
copyChannelState();
|
|
894
|
+
failedMessages = (_channelMessagesState = channelMessagesState.messages) == null ? void 0 : _channelMessagesState.filter(function (message) {
|
|
895
|
+
return message.status === _utils.MessageStatusTypes.FAILED;
|
|
896
|
+
}).map(parseMessage);
|
|
897
|
+
if (failedMessages != null && failedMessages.length) {
|
|
898
|
+
channel.state.addMessagesSorted(failedMessages);
|
|
899
|
+
}
|
|
900
|
+
channel.state.setIsUpToDate(true);
|
|
901
|
+
_context4.next = 20;
|
|
902
|
+
break;
|
|
903
|
+
case 16:
|
|
904
|
+
_context4.next = 18;
|
|
905
|
+
return reloadThread();
|
|
906
|
+
case 18:
|
|
907
|
+
failedThreadMessages = thread ? threadMessages.filter(function (message) {
|
|
908
|
+
return message.status === _utils.MessageStatusTypes.FAILED;
|
|
909
|
+
}).map(parseMessage) : [];
|
|
910
|
+
if (failedThreadMessages.length) {
|
|
911
|
+
channel.state.addMessagesSorted(failedThreadMessages);
|
|
912
|
+
setThreadMessages((0, _toConsumableArray2["default"])(channel.state.threads[thread.id]));
|
|
913
|
+
}
|
|
914
|
+
case 20:
|
|
915
|
+
_context4.next = 25;
|
|
916
|
+
break;
|
|
917
|
+
case 22:
|
|
918
|
+
_context4.prev = 22;
|
|
919
|
+
_context4.t0 = _context4["catch"](8);
|
|
920
|
+
if (_context4.t0 instanceof Error) {
|
|
921
|
+
setError(_context4.t0);
|
|
922
|
+
} else {
|
|
923
|
+
setError(true);
|
|
924
|
+
}
|
|
925
|
+
case 25:
|
|
926
|
+
syncingChannelRef.current = false;
|
|
927
|
+
case 26:
|
|
928
|
+
case "end":
|
|
929
|
+
return _context4.stop();
|
|
930
|
+
}
|
|
931
|
+
}, _callee4, null, [[8, 22]]);
|
|
932
|
+
})));
|
|
922
933
|
var resyncChannelRef = (0, _react.useRef)(resyncChannel);
|
|
923
934
|
resyncChannelRef.current = resyncChannel;
|
|
924
935
|
(0, _react.useEffect)(function () {
|
|
@@ -953,32 +964,27 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
953
964
|
}
|
|
954
965
|
};
|
|
955
966
|
var clientChannelConfig = getChannelConfigSafely();
|
|
956
|
-
var reloadChannel = function () {
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
return function reloadChannel() {
|
|
978
|
-
return _ref6.apply(this, arguments);
|
|
979
|
-
};
|
|
980
|
-
}();
|
|
981
|
-
var loadChannelAroundMessage = function () {
|
|
967
|
+
var reloadChannel = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5() {
|
|
968
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
969
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
970
|
+
case 0:
|
|
971
|
+
_context5.prev = 0;
|
|
972
|
+
_context5.next = 3;
|
|
973
|
+
return loadLatestMessages();
|
|
974
|
+
case 3:
|
|
975
|
+
_context5.next = 8;
|
|
976
|
+
break;
|
|
977
|
+
case 5:
|
|
978
|
+
_context5.prev = 5;
|
|
979
|
+
_context5.t0 = _context5["catch"](0);
|
|
980
|
+
console.warn('Reloading channel failed with error:', _context5.t0);
|
|
981
|
+
case 8:
|
|
982
|
+
case "end":
|
|
983
|
+
return _context5.stop();
|
|
984
|
+
}
|
|
985
|
+
}, _callee5, null, [[0, 5]]);
|
|
986
|
+
})));
|
|
987
|
+
var loadChannelAroundMessage = (0, _hooks.useStableCallback)(function () {
|
|
982
988
|
var _ref8 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(_ref7) {
|
|
983
989
|
var messageIdToLoadAround;
|
|
984
990
|
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
@@ -1039,23 +1045,28 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1039
1045
|
}
|
|
1040
1046
|
}, _callee6, null, [[3, 24], [6, 14]]);
|
|
1041
1047
|
}));
|
|
1042
|
-
return function
|
|
1048
|
+
return function (_x2) {
|
|
1043
1049
|
return _ref8.apply(this, arguments);
|
|
1044
1050
|
};
|
|
1045
|
-
}();
|
|
1046
|
-
var updateMessage = function
|
|
1051
|
+
}());
|
|
1052
|
+
var updateMessage = (0, _hooks.useStableCallback)(function (updatedMessage) {
|
|
1047
1053
|
var extraState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
1054
|
+
var throttled = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
1048
1055
|
if (!channel) {
|
|
1049
1056
|
return;
|
|
1050
1057
|
}
|
|
1051
1058
|
channel.state.addMessageSorted(updatedMessage, true);
|
|
1052
|
-
|
|
1059
|
+
if (throttled) {
|
|
1060
|
+
copyMessagesStateFromChannelThrottled();
|
|
1061
|
+
} else {
|
|
1062
|
+
copyMessagesStateFromChannel(channel);
|
|
1063
|
+
}
|
|
1053
1064
|
if (thread && updatedMessage.parent_id) {
|
|
1054
1065
|
extraState.threadMessages = channel.state.threads[updatedMessage.parent_id] || [];
|
|
1055
1066
|
setThreadMessages(extraState.threadMessages);
|
|
1056
1067
|
}
|
|
1057
|
-
};
|
|
1058
|
-
var replaceMessage = function
|
|
1068
|
+
});
|
|
1069
|
+
var replaceMessage = (0, _hooks.useStableCallback)(function (oldMessage, newMessage) {
|
|
1059
1070
|
if (channel) {
|
|
1060
1071
|
channel.state.removeMessage(oldMessage);
|
|
1061
1072
|
channel.state.addMessageSorted(newMessage, true);
|
|
@@ -1065,8 +1076,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1065
1076
|
setThreadMessages(_threadMessages);
|
|
1066
1077
|
}
|
|
1067
1078
|
}
|
|
1068
|
-
};
|
|
1069
|
-
var createMessagePreview = function
|
|
1079
|
+
});
|
|
1080
|
+
var createMessagePreview = (0, _hooks.useStableCallback)(function (_ref9) {
|
|
1070
1081
|
var attachments = _ref9.attachments,
|
|
1071
1082
|
mentioned_users = _ref9.mentioned_users,
|
|
1072
1083
|
parent_id = _ref9.parent_id,
|
|
@@ -1109,8 +1120,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1109
1120
|
preview.quoted_message = _quotedMessage;
|
|
1110
1121
|
}
|
|
1111
1122
|
return preview;
|
|
1112
|
-
};
|
|
1113
|
-
var uploadPendingAttachments = function () {
|
|
1123
|
+
});
|
|
1124
|
+
var uploadPendingAttachments = (0, _hooks.useStableCallback)(function () {
|
|
1114
1125
|
var _ref10 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(message) {
|
|
1115
1126
|
var _updatedMessage$attac;
|
|
1116
1127
|
var updatedMessage, i, _updatedMessage$attac2, attachment, image, file, _image$name, filename, controller, compressedUri, contentType, uploadResponse, _controller, response;
|
|
@@ -1221,11 +1232,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1221
1232
|
}
|
|
1222
1233
|
}, _callee7);
|
|
1223
1234
|
}));
|
|
1224
|
-
return function
|
|
1235
|
+
return function (_x3) {
|
|
1225
1236
|
return _ref10.apply(this, arguments);
|
|
1226
1237
|
};
|
|
1227
|
-
}();
|
|
1228
|
-
var sendMessageRequest = function () {
|
|
1238
|
+
}());
|
|
1239
|
+
var sendMessageRequest = (0, _hooks.useStableCallback)(function () {
|
|
1229
1240
|
var _ref11 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(message, retrying) {
|
|
1230
1241
|
var updatedMessage, extraFields, attachments, id, mentioned_users, parent_id, text, mentionedUserIds, messageData, messageResponse, _updatedMessage;
|
|
1231
1242
|
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
@@ -1294,10 +1305,10 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1294
1305
|
if (retrying) {
|
|
1295
1306
|
replaceMessage(message, messageResponse.message);
|
|
1296
1307
|
} else {
|
|
1297
|
-
updateMessage(messageResponse.message);
|
|
1308
|
+
updateMessage(messageResponse.message, {}, true);
|
|
1298
1309
|
}
|
|
1299
1310
|
case 27:
|
|
1300
|
-
_context8.next =
|
|
1311
|
+
_context8.next = 40;
|
|
1301
1312
|
break;
|
|
1302
1313
|
case 29:
|
|
1303
1314
|
_context8.prev = 29;
|
|
@@ -1311,27 +1322,28 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1311
1322
|
threadInstance == null || threadInstance.upsertReplyLocally == null || threadInstance.upsertReplyLocally({
|
|
1312
1323
|
message: _updatedMessage
|
|
1313
1324
|
});
|
|
1325
|
+
optimisticallyUpdatedNewMessages["delete"](message.id);
|
|
1314
1326
|
if (!enableOfflineSupport) {
|
|
1315
|
-
_context8.next =
|
|
1327
|
+
_context8.next = 40;
|
|
1316
1328
|
break;
|
|
1317
1329
|
}
|
|
1318
|
-
_context8.next =
|
|
1330
|
+
_context8.next = 40;
|
|
1319
1331
|
return dbApi.updateMessage({
|
|
1320
1332
|
message: Object.assign({}, message, {
|
|
1321
1333
|
cid: channel.cid
|
|
1322
1334
|
})
|
|
1323
1335
|
});
|
|
1324
|
-
case
|
|
1336
|
+
case 40:
|
|
1325
1337
|
case "end":
|
|
1326
1338
|
return _context8.stop();
|
|
1327
1339
|
}
|
|
1328
1340
|
}, _callee8, null, [[0, 29]]);
|
|
1329
1341
|
}));
|
|
1330
|
-
return function
|
|
1342
|
+
return function (_x4, _x5) {
|
|
1331
1343
|
return _ref11.apply(this, arguments);
|
|
1332
1344
|
};
|
|
1333
|
-
}();
|
|
1334
|
-
var sendMessage = function () {
|
|
1345
|
+
}());
|
|
1346
|
+
var sendMessage = (0, _hooks.useStableCallback)(function () {
|
|
1335
1347
|
var _ref12 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(message) {
|
|
1336
1348
|
var _channel$state;
|
|
1337
1349
|
var messagePreview;
|
|
@@ -1351,31 +1363,32 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1351
1363
|
threadInstance == null || threadInstance.upsertReplyLocally == null || threadInstance.upsertReplyLocally({
|
|
1352
1364
|
message: messagePreview
|
|
1353
1365
|
});
|
|
1366
|
+
optimisticallyUpdatedNewMessages.add(messagePreview.id);
|
|
1354
1367
|
if (!enableOfflineSupport) {
|
|
1355
|
-
_context9.next =
|
|
1368
|
+
_context9.next = 8;
|
|
1356
1369
|
break;
|
|
1357
1370
|
}
|
|
1358
|
-
_context9.next =
|
|
1371
|
+
_context9.next = 8;
|
|
1359
1372
|
return dbApi.upsertMessages({
|
|
1360
1373
|
messages: [Object.assign({}, messagePreview, {
|
|
1361
1374
|
cid: channel.cid,
|
|
1362
1375
|
status: _utils.MessageStatusTypes.FAILED
|
|
1363
1376
|
})]
|
|
1364
1377
|
});
|
|
1365
|
-
case
|
|
1366
|
-
_context9.next =
|
|
1378
|
+
case 8:
|
|
1379
|
+
_context9.next = 10;
|
|
1367
1380
|
return sendMessageRequest(messagePreview);
|
|
1368
|
-
case
|
|
1381
|
+
case 10:
|
|
1369
1382
|
case "end":
|
|
1370
1383
|
return _context9.stop();
|
|
1371
1384
|
}
|
|
1372
1385
|
}, _callee9);
|
|
1373
1386
|
}));
|
|
1374
|
-
return function
|
|
1387
|
+
return function (_x6) {
|
|
1375
1388
|
return _ref12.apply(this, arguments);
|
|
1376
1389
|
};
|
|
1377
|
-
}();
|
|
1378
|
-
var retrySendMessage = function () {
|
|
1390
|
+
}());
|
|
1391
|
+
var retrySendMessage = (0, _hooks.useStableCallback)(function () {
|
|
1379
1392
|
var _ref13 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee10(message) {
|
|
1380
1393
|
var statusPendingMessage, messageWithoutReservedFields;
|
|
1381
1394
|
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
@@ -1396,27 +1409,27 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1396
1409
|
}
|
|
1397
1410
|
}, _callee10);
|
|
1398
1411
|
}));
|
|
1399
|
-
return function
|
|
1412
|
+
return function (_x7) {
|
|
1400
1413
|
return _ref13.apply(this, arguments);
|
|
1401
1414
|
};
|
|
1402
|
-
}();
|
|
1403
|
-
var editMessage = function
|
|
1415
|
+
}());
|
|
1416
|
+
var editMessage = (0, _hooks.useStableCallback)(function (updatedMessage) {
|
|
1404
1417
|
return doUpdateMessageRequest ? doUpdateMessageRequest((channel == null ? void 0 : channel.cid) || '', updatedMessage) : client.updateMessage(updatedMessage);
|
|
1405
|
-
};
|
|
1406
|
-
var setEditingState = function
|
|
1418
|
+
});
|
|
1419
|
+
var setEditingState = (0, _hooks.useStableCallback)(function (message) {
|
|
1407
1420
|
clearQuotedMessageState();
|
|
1408
1421
|
setEditing(message);
|
|
1409
|
-
};
|
|
1410
|
-
var setQuotedMessageState = function
|
|
1422
|
+
});
|
|
1423
|
+
var setQuotedMessageState = (0, _hooks.useStableCallback)(function (messageOrBoolean) {
|
|
1411
1424
|
setQuotedMessage(messageOrBoolean);
|
|
1412
|
-
};
|
|
1413
|
-
var clearEditingState = function
|
|
1425
|
+
});
|
|
1426
|
+
var clearEditingState = (0, _hooks.useStableCallback)(function () {
|
|
1414
1427
|
return setEditing(undefined);
|
|
1415
|
-
};
|
|
1416
|
-
var clearQuotedMessageState = function
|
|
1428
|
+
});
|
|
1429
|
+
var clearQuotedMessageState = (0, _hooks.useStableCallback)(function () {
|
|
1417
1430
|
return setQuotedMessage(undefined);
|
|
1418
|
-
};
|
|
1419
|
-
var removeMessage = function () {
|
|
1431
|
+
});
|
|
1432
|
+
var removeMessage = (0, _hooks.useStableCallback)(function () {
|
|
1420
1433
|
var _ref14 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee11(message) {
|
|
1421
1434
|
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
1422
1435
|
while (1) switch (_context11.prev = _context11.next) {
|
|
@@ -1442,11 +1455,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1442
1455
|
}
|
|
1443
1456
|
}, _callee11);
|
|
1444
1457
|
}));
|
|
1445
|
-
return function
|
|
1458
|
+
return function (_x8) {
|
|
1446
1459
|
return _ref14.apply(this, arguments);
|
|
1447
1460
|
};
|
|
1448
|
-
}();
|
|
1449
|
-
var sendReaction = function () {
|
|
1461
|
+
}());
|
|
1462
|
+
var sendReaction = (0, _hooks.useStableCallback)(function () {
|
|
1450
1463
|
var _ref15 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee12(type, messageId) {
|
|
1451
1464
|
var payload, sendReactionResponse;
|
|
1452
1465
|
return _regenerator["default"].wrap(function _callee12$(_context12) {
|
|
@@ -1504,11 +1517,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1504
1517
|
}
|
|
1505
1518
|
}, _callee12);
|
|
1506
1519
|
}));
|
|
1507
|
-
return function
|
|
1520
|
+
return function (_x9, _x10) {
|
|
1508
1521
|
return _ref15.apply(this, arguments);
|
|
1509
1522
|
};
|
|
1510
|
-
}();
|
|
1511
|
-
var deleteMessage = function () {
|
|
1523
|
+
}());
|
|
1524
|
+
var deleteMessage = (0, _hooks.useStableCallback)(function () {
|
|
1512
1525
|
var _ref16 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee13(message) {
|
|
1513
1526
|
var updatedMessage, data;
|
|
1514
1527
|
return _regenerator["default"].wrap(function _callee13$(_context13) {
|
|
@@ -1584,11 +1597,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1584
1597
|
}
|
|
1585
1598
|
}, _callee13);
|
|
1586
1599
|
}));
|
|
1587
|
-
return function
|
|
1600
|
+
return function (_x11) {
|
|
1588
1601
|
return _ref16.apply(this, arguments);
|
|
1589
1602
|
};
|
|
1590
|
-
}();
|
|
1591
|
-
var deleteReaction = function () {
|
|
1603
|
+
}());
|
|
1604
|
+
var deleteReaction = (0, _hooks.useStableCallback)(function () {
|
|
1592
1605
|
var _ref17 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee14(type, messageId) {
|
|
1593
1606
|
var payload;
|
|
1594
1607
|
return _regenerator["default"].wrap(function _callee14$(_context14) {
|
|
@@ -1634,10 +1647,10 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1634
1647
|
}
|
|
1635
1648
|
}, _callee14);
|
|
1636
1649
|
}));
|
|
1637
|
-
return function
|
|
1650
|
+
return function (_x12, _x13) {
|
|
1638
1651
|
return _ref17.apply(this, arguments);
|
|
1639
1652
|
};
|
|
1640
|
-
}();
|
|
1653
|
+
}());
|
|
1641
1654
|
var openThread = (0, _react.useCallback)(function (message) {
|
|
1642
1655
|
setThread(message);
|
|
1643
1656
|
if (channel.initialized) {
|
|
@@ -1655,62 +1668,57 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1655
1668
|
setThreadLoadingMore(false);
|
|
1656
1669
|
setThreadMessages(updatedThreadMessages);
|
|
1657
1670
|
}, defaultDebounceInterval, debounceOptions)).current;
|
|
1658
|
-
var loadMoreThread = function () {
|
|
1659
|
-
var
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
_context15.next = 2;
|
|
1666
|
-
break;
|
|
1667
|
-
}
|
|
1668
|
-
return _context15.abrupt("return");
|
|
1669
|
-
case 2:
|
|
1670
|
-
setThreadLoadingMore(true);
|
|
1671
|
-
_context15.prev = 3;
|
|
1672
|
-
if (!channel) {
|
|
1673
|
-
_context15.next = 15;
|
|
1674
|
-
break;
|
|
1675
|
-
}
|
|
1676
|
-
parentID = thread.id;
|
|
1677
|
-
channel.state.threads[parentID] = threadMessages;
|
|
1678
|
-
oldestMessageID = threadMessages == null || (_threadMessages$ = threadMessages[0]) == null ? void 0 : _threadMessages$.id;
|
|
1679
|
-
limit = 50;
|
|
1680
|
-
_context15.next = 11;
|
|
1681
|
-
return channel.getReplies(parentID, {
|
|
1682
|
-
id_lt: oldestMessageID,
|
|
1683
|
-
limit: limit
|
|
1684
|
-
});
|
|
1685
|
-
case 11:
|
|
1686
|
-
queryResponse = _context15.sent;
|
|
1687
|
-
updatedHasMore = queryResponse.messages.length === limit;
|
|
1688
|
-
updatedThreadMessages = channel.state.threads[parentID] || [];
|
|
1689
|
-
loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);
|
|
1690
|
-
case 15:
|
|
1691
|
-
_context15.next = 23;
|
|
1671
|
+
var loadMoreThread = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee15() {
|
|
1672
|
+
var _threadMessages$, parentID, oldestMessageID, limit, queryResponse, updatedHasMore, updatedThreadMessages;
|
|
1673
|
+
return _regenerator["default"].wrap(function _callee15$(_context15) {
|
|
1674
|
+
while (1) switch (_context15.prev = _context15.next) {
|
|
1675
|
+
case 0:
|
|
1676
|
+
if (!(threadLoadingMore || !(thread != null && thread.id))) {
|
|
1677
|
+
_context15.next = 2;
|
|
1692
1678
|
break;
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1679
|
+
}
|
|
1680
|
+
return _context15.abrupt("return");
|
|
1681
|
+
case 2:
|
|
1682
|
+
setThreadLoadingMore(true);
|
|
1683
|
+
_context15.prev = 3;
|
|
1684
|
+
if (!channel) {
|
|
1685
|
+
_context15.next = 15;
|
|
1686
|
+
break;
|
|
1687
|
+
}
|
|
1688
|
+
parentID = thread.id;
|
|
1689
|
+
channel.state.threads[parentID] = threadMessages;
|
|
1690
|
+
oldestMessageID = threadMessages == null || (_threadMessages$ = threadMessages[0]) == null ? void 0 : _threadMessages$.id;
|
|
1691
|
+
limit = 50;
|
|
1692
|
+
_context15.next = 11;
|
|
1693
|
+
return channel.getReplies(parentID, {
|
|
1694
|
+
id_lt: oldestMessageID,
|
|
1695
|
+
limit: limit
|
|
1696
|
+
});
|
|
1697
|
+
case 11:
|
|
1698
|
+
queryResponse = _context15.sent;
|
|
1699
|
+
updatedHasMore = queryResponse.messages.length === limit;
|
|
1700
|
+
updatedThreadMessages = channel.state.threads[parentID] || [];
|
|
1701
|
+
loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);
|
|
1702
|
+
case 15:
|
|
1703
|
+
_context15.next = 23;
|
|
1704
|
+
break;
|
|
1705
|
+
case 17:
|
|
1706
|
+
_context15.prev = 17;
|
|
1707
|
+
_context15.t0 = _context15["catch"](3);
|
|
1708
|
+
console.warn('Message pagination request failed with error', _context15.t0);
|
|
1709
|
+
if (_context15.t0 instanceof Error) {
|
|
1710
|
+
setError(_context15.t0);
|
|
1711
|
+
} else {
|
|
1712
|
+
setError(true);
|
|
1713
|
+
}
|
|
1714
|
+
setThreadLoadingMore(false);
|
|
1715
|
+
throw _context15.t0;
|
|
1716
|
+
case 23:
|
|
1717
|
+
case "end":
|
|
1718
|
+
return _context15.stop();
|
|
1719
|
+
}
|
|
1720
|
+
}, _callee15, null, [[3, 17]]);
|
|
1721
|
+
})));
|
|
1714
1722
|
var ownCapabilitiesContext = (0, _useCreateOwnCapabilitiesContext.useCreateOwnCapabilitiesContext)({
|
|
1715
1723
|
channel: channel,
|
|
1716
1724
|
overrideCapabilities: overrideOwnCapabilities
|
|
@@ -1752,11 +1760,6 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1752
1760
|
watcherCount: channelState.watcherCount,
|
|
1753
1761
|
watchers: channelState.watchers
|
|
1754
1762
|
});
|
|
1755
|
-
var sendMessageRef = (0, _react.useRef)(sendMessage);
|
|
1756
|
-
sendMessageRef.current = sendMessage;
|
|
1757
|
-
var sendMessageStable = (0, _react.useCallback)(function () {
|
|
1758
|
-
return sendMessageRef.current.apply(sendMessageRef, arguments);
|
|
1759
|
-
}, []);
|
|
1760
1763
|
var inputMessageInputContext = (0, _useCreateInputMessageInputContext.useCreateInputMessageInputContext)({
|
|
1761
1764
|
additionalTextInputProps: additionalTextInputProps,
|
|
1762
1765
|
asyncMessagesLockDistance: asyncMessagesLockDistance,
|
|
@@ -1809,7 +1812,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1809
1812
|
quotedMessage: quotedMessage,
|
|
1810
1813
|
SendButton: SendButton,
|
|
1811
1814
|
sendImageAsync: sendImageAsync,
|
|
1812
|
-
sendMessage:
|
|
1815
|
+
sendMessage: sendMessage,
|
|
1813
1816
|
SendMessageDisallowedIndicator: SendMessageDisallowedIndicator,
|
|
1814
1817
|
setInputRef: setInputRef,
|
|
1815
1818
|
setQuotedMessageState: setQuotedMessageState,
|