Page MenuHomePhabricator

D13385.id44318.diff
No OneTemporary

D13385.id44318.diff

diff --git a/lib/handlers/db-ops-handler.react.js b/lib/handlers/db-ops-handler.react.js
--- a/lib/handlers/db-ops-handler.react.js
+++ b/lib/handlers/db-ops-handler.react.js
@@ -3,6 +3,7 @@
import * as React from 'react';
import { opsProcessingFinishedActionType } from '../actions/db-ops-actions.js';
+import { getAllPeerDevices } from '../selectors/user-selectors.js';
import { usePeerToPeerCommunication } from '../tunnelbroker/peer-to-peer-context.js';
import { useTunnelbroker } from '../tunnelbroker/tunnelbroker-context.js';
import type { DBOpsEntry } from '../types/db-ops-types.js';
@@ -22,6 +23,7 @@
const prevQueueFront = React.useRef<?DBOpsEntry>(null);
const { sendMessageToDevice } = useTunnelbroker();
const { processOutboundMessages } = usePeerToPeerCommunication();
+ const allPeerDevices = useSelector(getAllPeerDevices);
const dispatch = useDispatch();
@@ -36,14 +38,29 @@
if (ops) {
await processDBStoreOperations(ops);
if (ops.outboundP2PMessages && ops.outboundP2PMessages.length > 0) {
- const messageIDs = ops.outboundP2PMessages.map(
- message => message.messageID,
- );
+ const allPeerDevicesSet = new Set(allPeerDevices);
+ const removeP2PMessagesPromises = [];
+ const messageIDs = ops?.outboundP2PMessages
+ ?.map(message => {
+ if (!allPeerDevicesSet.has(message.deviceID)) {
+ removeP2PMessagesPromises.push(
+ sqliteAPI.removeOutboundP2PMessage(
+ message.messageID,
+ message.deviceID,
+ ),
+ );
+ return null;
+ }
+
+ return message.messageID;
+ })
+ ?.filter(Boolean);
processOutboundMessages(
messageIDs,
dispatchMetadata?.dmOpID,
notificationsCreationData,
);
+ void Promise.all(removeP2PMessagesPromises);
}
}
dispatch({
@@ -82,6 +99,7 @@
sendMessageToDevice,
sqliteAPI,
processOutboundMessages,
+ allPeerDevices,
]);
return null;

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 20, 1:38 AM (17 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2328271
Default Alt Text
D13385.id44318.diff (2 KB)

Event Timeline