@ethora/chat-component-rn 26.5.17 → 26.5.19
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/assets/EmptyChatIllustration.js +106 -0
- package/lib/commonjs/assets/EmptyChatIllustration.js.map +1 -0
- package/lib/commonjs/assets/icons.js +13 -2
- package/lib/commonjs/assets/icons.js.map +1 -1
- package/lib/commonjs/components/DropdownMenu/DropdownMenu.js +2 -1
- package/lib/commonjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +4 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +5 -2
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChooseChatMessage.js +9 -2
- package/lib/commonjs/components/MainComponents/ChooseChatMessage.js.map +1 -1
- package/lib/commonjs/components/MainComponents/EditWrapper.js +12 -4
- package/lib/commonjs/components/MainComponents/EditWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageList.js +2 -1
- package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/NoMessagesPlaceholder.js +11 -3
- package/lib/commonjs/components/MainComponents/NoMessagesPlaceholder.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +12 -7
- package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RoomList.js +2 -1
- package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Avatar.js +16 -7
- package/lib/commonjs/components/MessageBubble/Avatar.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Message.js +19 -1
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +7 -5
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +4 -2
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +9 -0
- package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
- package/lib/commonjs/components/styled/Button.js +4 -2
- package/lib/commonjs/components/styled/Button.js.map +1 -1
- package/lib/commonjs/components/styled/DateLabel.js +12 -4
- package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
- package/lib/commonjs/components/styled/SendInput.js +14 -10
- package/lib/commonjs/components/styled/SendInput.js.map +1 -1
- package/lib/commonjs/context/xmppProvider.js +8 -1
- package/lib/commonjs/context/xmppProvider.js.map +1 -1
- package/lib/commonjs/helpers/getAvatarColor.js +33 -0
- package/lib/commonjs/helpers/getAvatarColor.js.map +1 -0
- package/lib/commonjs/helpers/getDateLabelColor.js +9 -0
- package/lib/commonjs/helpers/getDateLabelColor.js.map +1 -0
- package/lib/commonjs/helpers/getElementFont.js +29 -0
- package/lib/commonjs/helpers/getElementFont.js.map +1 -0
- package/lib/commonjs/helpers/getIconColor.js +9 -0
- package/lib/commonjs/helpers/getIconColor.js.map +1 -0
- package/lib/commonjs/helpers/getSenderNameColor.js +9 -0
- package/lib/commonjs/helpers/getSenderNameColor.js.map +1 -0
- package/lib/commonjs/hooks/useSendMessage.js +73 -23
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/networking/outboundQueue.js +23 -5
- package/lib/commonjs/networking/outboundQueue.js.map +1 -1
- package/lib/commonjs/networking/xmppClient.js +50 -0
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js +22 -0
- package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
- package/lib/commonjs/roomStore/roomsSlice.js +13 -1
- package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
- package/lib/module/assets/EmptyChatIllustration.js +99 -0
- package/lib/module/assets/EmptyChatIllustration.js.map +1 -0
- package/lib/module/assets/icons.js +13 -2
- package/lib/module/assets/icons.js.map +1 -1
- package/lib/module/components/DropdownMenu/DropdownMenu.js +2 -1
- package/lib/module/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/lib/module/components/MainComponents/ChatHeader.js +4 -1
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +5 -2
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/ChooseChatMessage.js +9 -2
- package/lib/module/components/MainComponents/ChooseChatMessage.js.map +1 -1
- package/lib/module/components/MainComponents/EditWrapper.js +12 -4
- package/lib/module/components/MainComponents/EditWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/MessageList.js +2 -1
- package/lib/module/components/MainComponents/MessageList.js.map +1 -1
- package/lib/module/components/MainComponents/NoMessagesPlaceholder.js +11 -3
- package/lib/module/components/MainComponents/NoMessagesPlaceholder.js.map +1 -1
- package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +12 -7
- package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
- package/lib/module/components/MainComponents/RoomList.js +2 -1
- package/lib/module/components/MainComponents/RoomList.js.map +1 -1
- package/lib/module/components/MessageBubble/Avatar.js +16 -7
- package/lib/module/components/MessageBubble/Avatar.js.map +1 -1
- package/lib/module/components/MessageBubble/Message.js +19 -1
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js +7 -5
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +4 -2
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +9 -0
- package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
- package/lib/module/components/styled/Button.js +4 -2
- package/lib/module/components/styled/Button.js.map +1 -1
- package/lib/module/components/styled/DateLabel.js +12 -4
- package/lib/module/components/styled/DateLabel.js.map +1 -1
- package/lib/module/components/styled/SendInput.js +14 -10
- package/lib/module/components/styled/SendInput.js.map +1 -1
- package/lib/module/context/xmppProvider.js +8 -1
- package/lib/module/context/xmppProvider.js.map +1 -1
- package/lib/module/helpers/getAvatarColor.js +28 -0
- package/lib/module/helpers/getAvatarColor.js.map +1 -0
- package/lib/module/helpers/getDateLabelColor.js +4 -0
- package/lib/module/helpers/getDateLabelColor.js.map +1 -0
- package/lib/module/helpers/getElementFont.js +24 -0
- package/lib/module/helpers/getElementFont.js.map +1 -0
- package/lib/module/helpers/getIconColor.js +4 -0
- package/lib/module/helpers/getIconColor.js.map +1 -0
- package/lib/module/helpers/getSenderNameColor.js +4 -0
- package/lib/module/helpers/getSenderNameColor.js.map +1 -0
- package/lib/module/hooks/useSendMessage.js +73 -23
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/networking/outboundQueue.js +22 -5
- package/lib/module/networking/outboundQueue.js.map +1 -1
- package/lib/module/networking/xmppClient.js +50 -0
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/roomStore/Middleware/newMessageMidlleware.js +22 -0
- package/lib/module/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
- package/lib/module/roomStore/roomsSlice.js +13 -1
- package/lib/module/roomStore/roomsSlice.js.map +1 -1
- package/lib/typescript/assets/EmptyChatIllustration.d.ts +10 -0
- package/lib/typescript/assets/EmptyChatIllustration.d.ts.map +1 -0
- package/lib/typescript/assets/icons.d.ts +3 -12
- package/lib/typescript/assets/icons.d.ts.map +1 -1
- package/lib/typescript/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChooseChatMessage.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/EditWrapper.d.ts +5 -1
- package/lib/typescript/components/MainComponents/EditWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/NoMessagesPlaceholder.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Avatar.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts +3 -0
- package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
- package/lib/typescript/components/styled/Button.d.ts +1 -0
- package/lib/typescript/components/styled/Button.d.ts.map +1 -1
- package/lib/typescript/components/styled/DateLabel.d.ts +9 -8
- package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
- package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
- package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
- package/lib/typescript/helpers/getAvatarColor.d.ts +7 -0
- package/lib/typescript/helpers/getAvatarColor.d.ts.map +1 -0
- package/lib/typescript/helpers/getDateLabelColor.d.ts +8 -0
- package/lib/typescript/helpers/getDateLabelColor.d.ts.map +1 -0
- package/lib/typescript/helpers/getElementFont.d.ts +13 -0
- package/lib/typescript/helpers/getElementFont.d.ts.map +1 -0
- package/lib/typescript/helpers/getIconColor.d.ts +8 -0
- package/lib/typescript/helpers/getIconColor.d.ts.map +1 -0
- package/lib/typescript/helpers/getSenderNameColor.d.ts +8 -0
- package/lib/typescript/helpers/getSenderNameColor.d.ts.map +1 -0
- package/lib/typescript/hooks/useSendMessage.d.ts +1 -1
- package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/networking/outboundQueue.d.ts +17 -2
- package/lib/typescript/networking/outboundQueue.d.ts.map +1 -1
- package/lib/typescript/networking/xmppClient.d.ts +3 -0
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/roomStore/Middleware/newMessageMidlleware.d.ts.map +1 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
- package/lib/typescript/types/models/message.model.d.ts +1 -0
- package/lib/typescript/types/models/message.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +61 -1
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/assets/EmptyChatIllustration.tsx +49 -0
- package/src/assets/icons.tsx +64 -81
- package/src/components/DropdownMenu/DropdownMenu.tsx +2 -1
- package/src/components/MainComponents/ChatHeader.tsx +8 -2
- package/src/components/MainComponents/ChatRoom.tsx +5 -2
- package/src/components/MainComponents/ChooseChatMessage.tsx +5 -2
- package/src/components/MainComponents/EditWrapper.tsx +9 -6
- package/src/components/MainComponents/MessageList.tsx +2 -1
- package/src/components/MainComponents/NoMessagesPlaceholder.tsx +4 -1
- package/src/components/MainComponents/ProfileImagePlaceholder.tsx +14 -7
- package/src/components/MainComponents/RoomList.tsx +2 -1
- package/src/components/MessageBubble/Avatar.tsx +18 -9
- package/src/components/MessageBubble/Message.tsx +22 -1
- package/src/components/Modals/AttachSheet/AttachSheet.tsx +32 -4
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +10 -2
- package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +6 -0
- package/src/components/styled/Button.tsx +5 -1
- package/src/components/styled/DateLabel.tsx +10 -7
- package/src/components/styled/SendInput.tsx +18 -11
- package/src/context/xmppProvider.tsx +6 -1
- package/src/helpers/getAvatarColor.ts +31 -0
- package/src/helpers/getDateLabelColor.ts +3 -0
- package/src/helpers/getElementFont.ts +25 -0
- package/src/helpers/getIconColor.ts +3 -0
- package/src/helpers/getSenderNameColor.ts +3 -0
- package/src/hooks/useSendMessage.tsx +102 -59
- package/src/networking/outboundQueue.ts +26 -5
- package/src/networking/xmppClient.ts +47 -0
- package/src/roomStore/Middleware/newMessageMidlleware.tsx +25 -0
- package/src/roomStore/roomsSlice.ts +15 -1
- package/src/types/models/message.model.ts +3 -0
- package/src/types/types.ts +67 -2
|
@@ -16,10 +16,24 @@ import { useEventHandlers } from './useEventHandlers';
|
|
|
16
16
|
// long after the optimistic dispatch, mark it failed so the bubble
|
|
17
17
|
// flips out of the "sending..." state. Covers the silent-failure
|
|
18
18
|
// case (e.g. device offline before the message ever made it to the
|
|
19
|
-
// XMPP socket) — bug #18.
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
|
|
19
|
+
// XMPP socket) — bug #18.
|
|
20
|
+
//
|
|
21
|
+
// 10s window: a brief network blip that reconnects inside this window
|
|
22
|
+
// still resolves on its own — the offline send is buffered in the
|
|
23
|
+
// outbound queue (OUTBOUND_QUEUE_TTL_MS, kept in lockstep) and replayed
|
|
24
|
+
// the moment the stream comes back, so the server echo flips the bubble
|
|
25
|
+
// to delivered. Only a drop that outlasts 10s flips it to "Failed → tap
|
|
26
|
+
// to retry". If a slow send completes just after the window, the
|
|
27
|
+
// delivery clears the failed flag (see newMessageMidlleware) so it
|
|
28
|
+
// doesn't get stuck showing "Failed".
|
|
29
|
+
const PENDING_WATCHDOG_MS = 10_000;
|
|
30
|
+
|
|
31
|
+
// Media gets a longer window than text: the optimistic bubble appears before
|
|
32
|
+
// the file upload even starts, and a large file (up to the 50MB cap) over a
|
|
33
|
+
// slow link can legitimately take far longer than 10s to upload + send. Failing
|
|
34
|
+
// it at 10s mid-upload would flash a wrong "Failed" and let the user kick off a
|
|
35
|
+
// duplicate upload.
|
|
36
|
+
const MEDIA_PENDING_WATCHDOG_MS = 30_000;
|
|
23
37
|
|
|
24
38
|
// Monotonic counter for stanza ids. Bumped on each send within a single
|
|
25
39
|
// process. Two rapid sends in the same millisecond used to collide on
|
|
@@ -59,7 +73,7 @@ export const useSendMessage = _configOverride => {
|
|
|
59
73
|
handleMessageRetry
|
|
60
74
|
} = useEventHandlers(config);
|
|
61
75
|
const failedMessages = useSelector(state => state.roomHeapSlice?.failedMessages || {});
|
|
62
|
-
const sendMessage = useCallback(async (message, activeRoomJID, isReply, isChecked, mainMessage) => {
|
|
76
|
+
const sendMessage = useCallback(async (message, activeRoomJID, isReply, isChecked, mainMessage, existingId) => {
|
|
63
77
|
if (editAction?.isEdit) {
|
|
64
78
|
try {
|
|
65
79
|
client?.editMessageStanza(editAction.roomJid, editAction.messageId, message);
|
|
@@ -93,7 +107,7 @@ export const useSendMessage = _configOverride => {
|
|
|
93
107
|
// dedupes by id and flips `pending: false` → DoubleTick renders.
|
|
94
108
|
// Without this, the user taps send and sees nothing for ~200ms
|
|
95
109
|
// until the echo lands, which feels broken.
|
|
96
|
-
const optimisticId = nextStanzaId('send-text-message');
|
|
110
|
+
const optimisticId = existingId || nextStanzaId('send-text-message');
|
|
97
111
|
const optimisticDate = new Date().toISOString();
|
|
98
112
|
const selfId = user?.xmppUsername || user?.walletAddress || '';
|
|
99
113
|
const optimisticMessage = {
|
|
@@ -114,7 +128,11 @@ export const useSendMessage = _configOverride => {
|
|
|
114
128
|
name: `${user?.firstName || ''} ${user?.lastName || ''}`.trim() || selfId
|
|
115
129
|
}
|
|
116
130
|
};
|
|
117
|
-
|
|
131
|
+
// On retry (`existingId`) the original optimistic bubble is still in
|
|
132
|
+
// the room (pending:true) — clearMessageFailure just flipped it back out
|
|
133
|
+
// of the "failed" state — so re-adding would duplicate it. Only push a
|
|
134
|
+
// fresh bubble for a brand-new send.
|
|
135
|
+
if (!config?.disableSentLogic && !existingId) {
|
|
118
136
|
dispatch(addRoomMessage({
|
|
119
137
|
roomJID: activeRoomJID,
|
|
120
138
|
message: optimisticMessage
|
|
@@ -150,26 +168,46 @@ export const useSendMessage = _configOverride => {
|
|
|
150
168
|
}
|
|
151
169
|
}, PENDING_WATCHDOG_MS);
|
|
152
170
|
try {
|
|
153
|
-
|
|
171
|
+
// The single send closure, used both for the immediate send and for
|
|
172
|
+
// the buffered replay. Passing the optimistic id as the stanza id
|
|
173
|
+
// means the server echoes it back with the same value, so the
|
|
174
|
+
// reducer's dedupe matches and the bubble flips pending → delivered
|
|
175
|
+
// in-place (rather than rendering a second copy).
|
|
176
|
+
const replaySend = c => c.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId);
|
|
177
|
+
|
|
178
|
+
// Always buffer a copy BEFORE attempting the live send. The WebSocket
|
|
179
|
+
// can still read `status: 'online'` for a beat after the network
|
|
180
|
+
// actually drops (the WS error lands a moment later), so a stanza sent
|
|
181
|
+
// "while online" can vanish into a dying socket and never get echoed.
|
|
182
|
+
// Buffering every send means the onOnline reconnect flush replays
|
|
183
|
+
// anything that wasn't confirmed within the window. The server echo
|
|
184
|
+
// removes the entry (see newMessageMidlleware), so a healthy online
|
|
185
|
+
// send never actually replays — only genuinely-lost ones do.
|
|
186
|
+
enqueueOutboundSend({
|
|
187
|
+
optimisticId,
|
|
188
|
+
roomJID: activeRoomJID,
|
|
189
|
+
enqueuedAt: Date.now(),
|
|
190
|
+
send: replaySend
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
// Only treat a client as usable if its underlying stream is actually
|
|
194
|
+
// `online` — the instance survives a network drop with a stale
|
|
195
|
+
// 'connecting'/'offline' status, and sending through it would just
|
|
196
|
+
// lose the stanza.
|
|
197
|
+
const effectiveClient = [client, getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
|
|
154
198
|
if (!effectiveClient) {
|
|
199
|
+
// No live stream — kick a reconnect; the buffered copy above is
|
|
200
|
+
// replayed by the onOnline flush once the stream is back.
|
|
155
201
|
const anyClient = client || getGlobalXmppClient() || store.getState()?.chatSettingStore?.client;
|
|
156
202
|
try {
|
|
157
203
|
anyClient?.forceReconnect?.();
|
|
158
204
|
} catch {}
|
|
159
|
-
enqueueOutboundSend({
|
|
160
|
-
optimisticId,
|
|
161
|
-
roomJID: activeRoomJID,
|
|
162
|
-
enqueuedAt: Date.now(),
|
|
163
|
-
send: c => c.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId)
|
|
164
|
-
});
|
|
165
205
|
return;
|
|
166
206
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
// ids don't match).
|
|
172
|
-
effectiveClient.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId);
|
|
207
|
+
replaySend(effectiveClient);
|
|
208
|
+
try {
|
|
209
|
+
effectiveClient.ensureStreamAlive?.();
|
|
210
|
+
} catch {}
|
|
173
211
|
await handleMessageSent({
|
|
174
212
|
message,
|
|
175
213
|
roomJID: activeRoomJID,
|
|
@@ -309,7 +347,7 @@ export const useSendMessage = _configOverride => {
|
|
|
309
347
|
messageType: 'media'
|
|
310
348
|
});
|
|
311
349
|
}
|
|
312
|
-
},
|
|
350
|
+
}, MEDIA_PENDING_WATCHDOG_MS);
|
|
313
351
|
|
|
314
352
|
// Help RN's FormData polyfill build a proper multipart/file part
|
|
315
353
|
// (instead of serialising the JS object as JSON). On iOS the
|
|
@@ -386,11 +424,17 @@ export const useSendMessage = _configOverride => {
|
|
|
386
424
|
// Stanza id == placeholder id so the MUC echo's outer
|
|
387
425
|
// <message id="..."> matches xmppId on the placeholder and
|
|
388
426
|
// insertMessageWithDelimiter merges in place + flips pending.
|
|
389
|
-
|
|
427
|
+
// Same online-only guard as the text path: a surviving-but-offline
|
|
428
|
+
// client must NOT be used (the stanza would vanish into a dead
|
|
429
|
+
// socket) — fall through to enqueue so the reconnect flush replays.
|
|
430
|
+
const effectiveMediaClient = [client, getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
|
|
390
431
|
if (effectiveMediaClient) {
|
|
391
432
|
effectiveMediaClient.setActiveRoomJid?.(activeRoomJID);
|
|
392
433
|
await Promise.resolve(effectiveMediaClient.prioritizeRoomPresence?.(activeRoomJID)).catch(() => false);
|
|
393
434
|
effectiveMediaClient.sendMediaMessageStanza(activeRoomJID, messagePayload, id);
|
|
435
|
+
try {
|
|
436
|
+
effectiveMediaClient.ensureStreamAlive?.();
|
|
437
|
+
} catch {}
|
|
394
438
|
} else {
|
|
395
439
|
const anyMediaClient = client || getGlobalXmppClient() || store.getState()?.chatSettingStore?.client;
|
|
396
440
|
try {
|
|
@@ -400,6 +444,9 @@ export const useSendMessage = _configOverride => {
|
|
|
400
444
|
optimisticId: id,
|
|
401
445
|
roomJID: activeRoomJID,
|
|
402
446
|
enqueuedAt: Date.now(),
|
|
447
|
+
// Match the media watchdog so a reconnect within the (longer)
|
|
448
|
+
// media window still auto-replays the buffered stanza.
|
|
449
|
+
ttlMs: MEDIA_PENDING_WATCHDOG_MS,
|
|
403
450
|
send: c => c.sendMediaMessageStanza(activeRoomJID, messagePayload, id)
|
|
404
451
|
});
|
|
405
452
|
}
|
|
@@ -480,7 +527,10 @@ export const useSendMessage = _configOverride => {
|
|
|
480
527
|
messageType: payload.kind
|
|
481
528
|
});
|
|
482
529
|
if (payload.kind === 'text') {
|
|
483
|
-
await sendMessage(payload.body, payload.roomJID, payload.isReply, payload.isChecked, payload.mainMessage
|
|
530
|
+
await sendMessage(payload.body, payload.roomJID, payload.isReply, payload.isChecked, payload.mainMessage,
|
|
531
|
+
// Re-use the failed message's id so the retry resends in place
|
|
532
|
+
// instead of spawning a duplicate bubble.
|
|
533
|
+
failedId);
|
|
484
534
|
} else {
|
|
485
535
|
await sendMedia(payload.data, payload.type, payload.roomJID, payload.isReply, payload.isChecked, payload.mainMessage, failedId);
|
|
486
536
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileViaFetch","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","kind","Error","effectiveClient","c","status","anyClient","forceReconnect","enqueuedAt","send","clearTimeout","sendMedia","data","type","existingId","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileViaFetch","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","MEDIA_PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","existingId","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","kind","Error","replaySend","c","enqueuedAt","send","effectiveClient","status","anyClient","forceReconnect","ensureStreamAlive","clearTimeout","sendMedia","data","type","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","ttlMs","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,15 +21,16 @@
|
|
|
21
21
|
* Each queued item carries a `send(client)` closure that captures the
|
|
22
22
|
* original args (text or media), so flush is type-agnostic.
|
|
23
23
|
*
|
|
24
|
-
* TTL is deliberately aligned with the
|
|
24
|
+
* TTL is deliberately aligned with the pending-send watchdog in
|
|
25
25
|
* useSendMessage (PENDING_WATCHDOG_MS): a queued item older than that has
|
|
26
26
|
* already been — or is about to be — flipped to "Failed → tap to retry" by
|
|
27
27
|
* the watchdog, so replaying it on a late reconnect would duplicate the
|
|
28
28
|
* bubble. We drop those on flush and let the watchdog own the failure.
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
|
-
//
|
|
32
|
-
|
|
31
|
+
// Default replay window (text). Mirrors PENDING_WATCHDOG_MS in useSendMessage.
|
|
32
|
+
// Media enqueues a longer per-item ttlMs (see QueuedSend.ttlMs).
|
|
33
|
+
export const OUTBOUND_QUEUE_TTL_MS = 10_000;
|
|
33
34
|
let queue = [];
|
|
34
35
|
|
|
35
36
|
/**
|
|
@@ -59,8 +60,8 @@ export function flushOutboundSends(client, now) {
|
|
|
59
60
|
const pending = queue;
|
|
60
61
|
queue = [];
|
|
61
62
|
for (const item of pending) {
|
|
62
|
-
if (now - item.enqueuedAt > OUTBOUND_QUEUE_TTL_MS) {
|
|
63
|
-
// Stale — the
|
|
63
|
+
if (now - item.enqueuedAt > (item.ttlMs ?? OUTBOUND_QUEUE_TTL_MS)) {
|
|
64
|
+
// Stale — the send watchdog owns the failure; don't duplicate.
|
|
64
65
|
continue;
|
|
65
66
|
}
|
|
66
67
|
try {
|
|
@@ -72,6 +73,22 @@ export function flushOutboundSends(client, now) {
|
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Drop a single buffered send by its optimistic/stanza id. Called when a
|
|
78
|
+
* server-confirmed copy of the message arrives (see newMessageMidlleware):
|
|
79
|
+
* the send went through, so the buffered replay is no longer needed and must
|
|
80
|
+
* not fire on a later reconnect. No-op if the id isn't queued.
|
|
81
|
+
*/
|
|
82
|
+
export function removeOutboundSend(optimisticId) {
|
|
83
|
+
if (!optimisticId) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const idx = queue.findIndex(q => q.optimisticId === optimisticId);
|
|
87
|
+
if (idx >= 0) {
|
|
88
|
+
queue.splice(idx, 1);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
75
92
|
/** Drop everything — called on permanent teardown (logout / close). */
|
|
76
93
|
export function clearOutboundSends() {
|
|
77
94
|
queue = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OUTBOUND_QUEUE_TTL_MS","queue","enqueueOutboundSend","item","idx","findIndex","q","optimisticId","push","flushOutboundSends","client","now","length","pending","enqueuedAt","send","err","console","warn","clearOutboundSends","outboundQueueLength"],"sourceRoot":"../../../src","sources":["networking/outboundQueue.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["OUTBOUND_QUEUE_TTL_MS","queue","enqueueOutboundSend","item","idx","findIndex","q","optimisticId","push","flushOutboundSends","client","now","length","pending","enqueuedAt","ttlMs","send","err","console","warn","removeOutboundSend","splice","clearOutboundSends","outboundQueueLength"],"sourceRoot":"../../../src","sources":["networking/outboundQueue.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyBA;AACA;AACA,OAAO,MAAMA,qBAAqB,GAAG,MAAM;AAE3C,IAAIC,KAAmB,GAAG,EAAE;;AAE5B;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACC,IAAgB,EAAQ;EAC1D,MAAMC,GAAG,GAAGH,KAAK,CAACI,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,KAAKJ,IAAI,CAACI,YAAY,CAAC;EACxE,IAAIH,GAAG,IAAI,CAAC,EAAE;IACZ;IACA;IACAH,KAAK,CAACG,GAAG,CAAC,GAAGD,IAAI;IACjB;EACF;EACAF,KAAK,CAACO,IAAI,CAACL,IAAI,CAAC;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,kBAAkBA,CAChCC,MAA2B,EAC3BC,GAAW,EACL;EACN,IAAIV,KAAK,CAACW,MAAM,KAAK,CAAC,EAAE;IAAC;EAAO;EAChC,MAAMC,OAAO,GAAGZ,KAAK;EACrBA,KAAK,GAAG,EAAE;EACV,KAAK,MAAME,IAAI,IAAIU,OAAO,EAAE;IAC1B,IAAIF,GAAG,GAAGR,IAAI,CAACW,UAAU,IAAIX,IAAI,CAACY,KAAK,IAAIf,qBAAqB,CAAC,EAAE;MACjE;MACA;IACF;IACA,IAAI;MACFG,IAAI,CAACa,IAAI,CAACN,MAAM,CAAC;IACnB,CAAC,CAAC,OAAOO,GAAG,EAAE;MACZ;MACAC,OAAO,CAACC,IAAI,CAAC,mCAAmC,EAAEhB,IAAI,CAACI,YAAY,EAAEU,GAAG,CAAC;IAC3E;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,kBAAkBA,CAACb,YAAoB,EAAQ;EAC7D,IAAI,CAACA,YAAY,EAAE;IAAC;EAAO;EAC3B,MAAMH,GAAG,GAAGH,KAAK,CAACI,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,KAAKA,YAAY,CAAC;EACnE,IAAIH,GAAG,IAAI,CAAC,EAAE;IAACH,KAAK,CAACoB,MAAM,CAACjB,GAAG,EAAE,CAAC,CAAC;EAAC;AACtC;;AAEA;AACA,OAAO,SAASkB,kBAAkBA,CAAA,EAAS;EACzCrB,KAAK,GAAG,EAAE;AACZ;;AAEA;AACA,OAAO,SAASsB,mBAAmBA,CAAA,EAAW;EAC5C,OAAOtB,KAAK,CAACW,MAAM;AACrB","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ import { getChatsPrivateStoreRequest } from './xmpp/getChatsPrivateStoreRequest.
|
|
|
7
7
|
import { actionSetTimestampToPrivateStore } from './xmpp/actionSetTimestampToPrivateStore.xmpp';
|
|
8
8
|
import { flushLastViewedToPrivateStore } from './xmpp/flushLastViewedToPrivateStore';
|
|
9
9
|
import { sendTypingRequest } from './xmpp/sendTypingRequest.xmpp';
|
|
10
|
+
import { sendPing } from './xmpp/sendPing.xmpp';
|
|
10
11
|
import { getHistory } from './xmpp/getHistory.xmpp';
|
|
11
12
|
import { sendTextMessage } from './xmpp/sendTextMessage.xmpp';
|
|
12
13
|
import { deleteMessage } from './xmpp/deleteMessage.xmpp';
|
|
@@ -562,6 +563,55 @@ export class XmppClient {
|
|
|
562
563
|
this.reconnectAttempts = 0;
|
|
563
564
|
this.reconnect();
|
|
564
565
|
}
|
|
566
|
+
streamAliveProbe = null;
|
|
567
|
+
verifyStreamAlive(timeoutMs = 4000) {
|
|
568
|
+
if (this.status !== 'online' || !this.client) {
|
|
569
|
+
return Promise.resolve(false);
|
|
570
|
+
}
|
|
571
|
+
if (this.streamAliveProbe) {
|
|
572
|
+
return this.streamAliveProbe;
|
|
573
|
+
}
|
|
574
|
+
const underlying = this.client;
|
|
575
|
+
this.streamAliveProbe = new Promise(resolve => {
|
|
576
|
+
let settled = false;
|
|
577
|
+
const done = alive => {
|
|
578
|
+
if (settled) {
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
settled = true;
|
|
582
|
+
clearTimeout(timer);
|
|
583
|
+
try {
|
|
584
|
+
underlying.removeListener?.('stanza', onStanza);
|
|
585
|
+
} catch {}
|
|
586
|
+
resolve(alive);
|
|
587
|
+
};
|
|
588
|
+
const onStanza = () => done(true);
|
|
589
|
+
const timer = setTimeout(() => done(false), timeoutMs);
|
|
590
|
+
try {
|
|
591
|
+
underlying.on('stanza', onStanza);
|
|
592
|
+
sendPing(underlying, this.host, `alive-${Date.now()}`);
|
|
593
|
+
} catch {
|
|
594
|
+
// Couldn't even write the probe — treat as dead.
|
|
595
|
+
done(false);
|
|
596
|
+
}
|
|
597
|
+
}).finally(() => {
|
|
598
|
+
this.streamAliveProbe = null;
|
|
599
|
+
});
|
|
600
|
+
return this.streamAliveProbe;
|
|
601
|
+
}
|
|
602
|
+
async ensureStreamAlive(timeoutMs = 4000) {
|
|
603
|
+
if (this.suppressReconnect || this.status !== 'online') {
|
|
604
|
+
return;
|
|
605
|
+
}
|
|
606
|
+
const alive = await this.verifyStreamAlive(timeoutMs);
|
|
607
|
+
// Re-check state: a reconnect may have started meanwhile.
|
|
608
|
+
if (!alive && this.status === 'online' && !this.suppressReconnect) {
|
|
609
|
+
try {
|
|
610
|
+
devPushLog('xmpp', 'stream is zombie (ping unanswered) → forceReconnect');
|
|
611
|
+
} catch {}
|
|
612
|
+
this.forceReconnect();
|
|
613
|
+
}
|
|
614
|
+
}
|
|
565
615
|
async reconnect() {
|
|
566
616
|
if (this.suppressReconnect) {
|
|
567
617
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["xmpp","walletToUsername","sendMediaMessage","getChatsPrivateStoreRequest","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStore","sendTypingRequest","getHistory","sendTextMessage","deleteMessage","presenceInRoom","getLastMessage","createRoom","setRoomImage","getRoomMembers","getRoomInfo","leaveTheRoom","editMessage","inviteRoomRequest","getRooms","handleStanza","pushLog","devPushLog","normalizeRoomJid","store","applyPrivateStoreMarkers","clearOutboundSends","enqueueOutboundSend","flushOutboundSends","DEFAULT_DEV_SERVER","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","XmppClient","host","service","conference","status","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","maxReconnectDelay","lastReconnectAt","suppressReconnect","reconnectTimer","reconnecting","lastAuthError","credentialsProvider","credentialsRefreshInFlight","onOnlineCallback","presencesReady","disableLastRead","activeRoomJID","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","Map","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","client","setCredentialsProvider","provider","setOnOnline","cb","updateCredentials","username","constructor","xmppSettings","devServer","qos","historyQoS","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","presenceInRoomStanza","enqueueHistoryTask","params","chatJID","max","before","id","source","existing","get","sourceRank","promise","Promise","r","setTimeout","wait","handle","p","cur","delete","set","startedAt","s","url","match","detachEventListeners","reconnect","stop","setMaxListeners","origSend","send","bind","wrapped","stanza","tag","attrs","to","split","undefined","result","catch","Object","defineProperty","value","writable","configurable","console","warn","attachEventListeners","start","scheduleReconnect","onDisconnect","log","onOnline","flushPendingSends","onError","onStanza","from","on","c","removeListener","waitForOnline","timeoutMs","resolve","reject","tick","Error","ensureConnected","timeout","exp","Math","min","delay","pow","forceReconnect","clearTimeout","refreshCredentialsOnce","old","fresh","disconnect","options","close","getRoomsStanza","createRoomStanza","title","description","inviteRoomRequestStanza","roomJid","leaveTheRoomStanza","getHistoryStanza","coalesceRoom","getLastMessageArchiveStanza","setRoomImageStanza","roomThumbnail","roomBackground","getRoomInfoStanza","getRoomMembersStanza","isStreamReady","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","optimisticId","enqueuedAt","deleteMessageStanza","room","msgId","editMessageStanza","sendTypingRequestStanza","chatId","fullName","getChatsPrivateStoreRequestStanza","markers","normalized","jid","keys","n","Number","isFinite","length","dispatch","actionSetTimestampToPrivateStoreStanza","timestamp","chats","flushLastViewedToPrivateStoreStanza","rooms","opts","sendMediaMessageStanza","data","setVCardStanza","_xmppUsername","createPrivateRoomStanza","sendMessageReactionStanza","_roomJid","_reactionsList","_reactionSymbol","sendTextMessageWithTranslateTagStanza","_langSource"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["xmpp","walletToUsername","sendMediaMessage","getChatsPrivateStoreRequest","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStore","sendTypingRequest","sendPing","getHistory","sendTextMessage","deleteMessage","presenceInRoom","getLastMessage","createRoom","setRoomImage","getRoomMembers","getRoomInfo","leaveTheRoom","editMessage","inviteRoomRequest","getRooms","handleStanza","pushLog","devPushLog","normalizeRoomJid","store","applyPrivateStoreMarkers","clearOutboundSends","enqueueOutboundSend","flushOutboundSends","DEFAULT_DEV_SERVER","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","XmppClient","host","service","conference","status","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","maxReconnectDelay","lastReconnectAt","suppressReconnect","reconnectTimer","reconnecting","lastAuthError","credentialsProvider","credentialsRefreshInFlight","onOnlineCallback","presencesReady","disableLastRead","activeRoomJID","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","Map","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","client","setCredentialsProvider","provider","setOnOnline","cb","updateCredentials","username","constructor","xmppSettings","devServer","qos","historyQoS","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","presenceInRoomStanza","enqueueHistoryTask","params","chatJID","max","before","id","source","existing","get","sourceRank","promise","Promise","r","setTimeout","wait","handle","p","cur","delete","set","startedAt","s","url","match","detachEventListeners","reconnect","stop","setMaxListeners","origSend","send","bind","wrapped","stanza","tag","attrs","to","split","undefined","result","catch","Object","defineProperty","value","writable","configurable","console","warn","attachEventListeners","start","scheduleReconnect","onDisconnect","log","onOnline","flushPendingSends","onError","onStanza","from","on","c","removeListener","waitForOnline","timeoutMs","resolve","reject","tick","Error","ensureConnected","timeout","exp","Math","min","delay","pow","forceReconnect","clearTimeout","streamAliveProbe","verifyStreamAlive","underlying","settled","done","alive","timer","finally","ensureStreamAlive","refreshCredentialsOnce","old","fresh","disconnect","options","close","getRoomsStanza","createRoomStanza","title","description","inviteRoomRequestStanza","roomJid","leaveTheRoomStanza","getHistoryStanza","coalesceRoom","getLastMessageArchiveStanza","setRoomImageStanza","roomThumbnail","roomBackground","getRoomInfoStanza","getRoomMembersStanza","isStreamReady","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","optimisticId","enqueuedAt","deleteMessageStanza","room","msgId","editMessageStanza","sendTypingRequestStanza","chatId","fullName","getChatsPrivateStoreRequestStanza","markers","normalized","jid","keys","n","Number","isFinite","length","dispatch","actionSetTimestampToPrivateStoreStanza","timestamp","chats","flushLastViewedToPrivateStoreStanza","rooms","opts","sendMediaMessageStanza","data","setVCardStanza","_xmppUsername","createPrivateRoomStanza","sendMessageReactionStanza","_roomJid","_reactionsList","_reactionSymbol","sendTextMessageWithTranslateTagStanza","_langSource"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { updateRoom } from '../roomsSlice';
|
|
4
|
+
import { clearMessageFailure } from '../roomHeapSlice';
|
|
5
|
+
import { removeOutboundSend } from '../../networking/outboundQueue';
|
|
4
6
|
export const newMessageMidlleware = storeAPI => next => action => {
|
|
5
7
|
if (!action || !action.type) {
|
|
6
8
|
console.error('Invalid action in newMessageMiddleware:', action);
|
|
@@ -20,6 +22,26 @@ export const newMessageMidlleware = storeAPI => next => action => {
|
|
|
20
22
|
roomJID,
|
|
21
23
|
message
|
|
22
24
|
} = action.payload;
|
|
25
|
+
|
|
26
|
+
// Un-fail on confirmed delivery. A server-confirmed copy (echo or MAM
|
|
27
|
+
// history, never `pending`) arriving for a message we'd flagged failed
|
|
28
|
+
// means the send actually went through — e.g. a slow send that completed
|
|
29
|
+
// just after the 5s watchdog window, or a queued auto-resend landing on
|
|
30
|
+
// reconnect. The failed flag is keyed by our optimistic/stanza id, which
|
|
31
|
+
// the echo carries back as `id`/`xmppId`, so clear it here and let the
|
|
32
|
+
// bubble flip to delivered instead of staying stuck on "Failed".
|
|
33
|
+
if (message && !message.pending) {
|
|
34
|
+
// The confirmed copy carries our optimistic/stanza id back as id/xmppId.
|
|
35
|
+
// Drop any still-buffered replay for it so a later reconnect flush can't
|
|
36
|
+
// re-send an already-delivered message.
|
|
37
|
+
removeOutboundSend(message.id);
|
|
38
|
+
removeOutboundSend(message.xmppId);
|
|
39
|
+
const failedMap = state.roomHeapSlice?.failedMessages || {};
|
|
40
|
+
const failedKey = [message.id, message.xmppId].find(k => k && failedMap[k]);
|
|
41
|
+
if (failedKey) {
|
|
42
|
+
storeAPI.dispatch(clearMessageFailure(failedKey));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
23
45
|
if ((rooms[roomJID]?.lastMessageTimestamp ?? 0) <= Number(message.id)) {
|
|
24
46
|
storeAPI.dispatch(updateRoom({
|
|
25
47
|
jid: roomJID,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["updateRoom","newMessageMidlleware","storeAPI","next","action","type","console","error","payload","result","state","getState","rooms","roomJID","message","
|
|
1
|
+
{"version":3,"names":["updateRoom","clearMessageFailure","removeOutboundSend","newMessageMidlleware","storeAPI","next","action","type","console","error","payload","result","state","getState","rooms","roomJID","message","pending","id","xmppId","failedMap","roomHeapSlice","failedMessages","failedKey","find","k","dispatch","lastMessageTimestamp","Number","jid","updates"],"sourceRoot":"../../../../src","sources":["roomStore/Middleware/newMessageMidlleware.tsx"],"mappings":";;AACA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,mBAAmB,QAAQ,kBAAkB;AACtD,SAASC,kBAAkB,QAAQ,gCAAgC;AAGnE,OAAO,MAAMC,oBAAgC,GAC1CC,QAAQ,IAAMC,IAAI,IAAMC,MAAW,IAAK;EACvC,IAAI,CAACA,MAAM,IAAI,CAACA,MAAM,CAACC,IAAI,EAAE;IAC3BC,OAAO,CAACC,KAAK,CAAC,yCAAyC,EAAEH,MAAM,CAAC;IAChE,OAAOD,IAAI,CAACC,MAAM,CAAC;EACrB;EAEA,IAAIA,MAAM,CAACC,IAAI,KAAK,6BAA6B,EAAE;IACjD,OAAOF,IAAI,CAACC,MAAM,CAAC;EACrB;EAEA,IAAI,CAACA,MAAM,CAACI,OAAO,IAAI,OAAOJ,MAAM,CAACI,OAAO,KAAK,QAAQ,EAAE;IACzDF,OAAO,CAACC,KAAK,CAAC,4CAA4C,EAAEH,MAAM,CAAC;IACnE,OAAOD,IAAI,CAACC,MAAM,CAAC;EACrB;EAEA,MAAMK,MAAM,GAAGN,IAAI,CAACC,MAAM,CAAC;EAC3B,MAAMM,KAAK,GAAGR,QAAQ,CAACS,QAAQ,CAAC,CAAC;EACjC,MAAMC,KAA+B,GAAGF,KAAK,CAACE,KAAK,CAACA,KAAK;EAEzD,MAAM;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAGV,MAAM,CAACI,OAAO;;EAE3C;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAIM,OAAO,IAAI,CAACA,OAAO,CAACC,OAAO,EAAE;IAC/B;IACA;IACA;IACAf,kBAAkB,CAACc,OAAO,CAACE,EAAE,CAAC;IAC9BhB,kBAAkB,CAACc,OAAO,CAACG,MAAM,CAAC;IAElC,MAAMC,SAAS,GAAGR,KAAK,CAACS,aAAa,EAAEC,cAAc,IAAI,CAAC,CAAC;IAC3D,MAAMC,SAAS,GAAG,CAACP,OAAO,CAACE,EAAE,EAAEF,OAAO,CAACG,MAAM,CAAC,CAACK,IAAI,CAChDC,CAAqB,IAAKA,CAAC,IAAIL,SAAS,CAACK,CAAC,CAC7C,CAAC;IACD,IAAIF,SAAS,EAAE;MACbnB,QAAQ,CAACsB,QAAQ,CAACzB,mBAAmB,CAACsB,SAAmB,CAAC,CAAC;IAC7D;EACF;EAEA,IAAI,CAACT,KAAK,CAACC,OAAO,CAAC,EAAEY,oBAAoB,IAAI,CAAC,KAAKC,MAAM,CAACZ,OAAO,CAACE,EAAE,CAAC,EAAE;IACrEd,QAAQ,CAACsB,QAAQ,CACf1B,UAAU,CAAC;MACT6B,GAAG,EAAEd,OAAO;MACZe,OAAO,EAAE;QAAEH,oBAAoB,EAAEC,MAAM,CAACZ,OAAO,CAACE,EAAE,CAAC,IAAI;MAAE;IAC3D,CAAC,CACH,CAAC;EACH;EAEA,OAAOP,MAAM;AACf,CAAC;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA","ignoreList":[]}
|
|
@@ -66,7 +66,15 @@ function mergeHistoryIntoCache(existing, fetched) {
|
|
|
66
66
|
byId.set(String(m.id), m);
|
|
67
67
|
}
|
|
68
68
|
for (const m of realFetched) {
|
|
69
|
-
|
|
69
|
+
// Fetched wins on body/reactions/etc., but MAM doesn't carry our
|
|
70
|
+
// client-side "edited" flag (the archived stanza just has the corrected
|
|
71
|
+
// body). Preserve `isEdited` from the cached copy so a message edited
|
|
72
|
+
// before reload keeps its marker instead of losing it on history sync.
|
|
73
|
+
const prev = byId.get(String(m.id));
|
|
74
|
+
byId.set(String(m.id), prev?.isEdited && !m.isEdited ? {
|
|
75
|
+
...m,
|
|
76
|
+
isEdited: true
|
|
77
|
+
} : m);
|
|
70
78
|
}
|
|
71
79
|
const merged = Array.from(byId.values()).sort(byMs);
|
|
72
80
|
return [...capTail(merged), ...pending];
|
|
@@ -262,6 +270,10 @@ const reducers = {
|
|
|
262
270
|
state.rooms[roomJID].messages.map(message => {
|
|
263
271
|
if (message.id === messageId) {
|
|
264
272
|
message.body = text;
|
|
273
|
+
// Flag the correction so the bubble can render an "edited" marker.
|
|
274
|
+
// Covers both the author's own edit and edits from other users —
|
|
275
|
+
// every <replace> echo flows through here.
|
|
276
|
+
message.isEdited = true;
|
|
265
277
|
}
|
|
266
278
|
});
|
|
267
279
|
}
|