diff --git a/ts/components/conversation/message/MessageContextMenu.tsx b/ts/components/conversation/message/MessageContextMenu.tsx
index 9e97f1b35..59144e1ba 100644
--- a/ts/components/conversation/message/MessageContextMenu.tsx
+++ b/ts/components/conversation/message/MessageContextMenu.tsx
@@ -64,6 +64,7 @@ export const MessageContextMenu = (props: Props) => {
} = selected;
const { messageId, contextMenuId } = props;
const showRetry = status === 'error' && direction === 'outgoing';
+ const isSent = status === 'sent';
const multipleAttachments = attachments && attachments.length > 1;
const onContextMenuShown = useCallback(() => {
@@ -168,7 +169,7 @@ export const MessageContextMenu = (props: Props) => {
) : null}
- {window.i18n('copyMessage')}
- - {window.i18n('replyToMessage')}
+ {isSent && - {window.i18n('replyToMessage')}
}
- {window.i18n('moreInformation')}
{showRetry ? - {window.i18n('resend')}
: null}
{isDeletable ? (
diff --git a/ts/session/sending/MessageSender.ts b/ts/session/sending/MessageSender.ts
index 85cba5f55..13fcedb0a 100644
--- a/ts/session/sending/MessageSender.ts
+++ b/ts/session/sending/MessageSender.ts
@@ -31,6 +31,13 @@ function overwriteOutgoingTimestampWithNetworkTimestamp(message: RawMessage) {
const contentDecoded = SignalService.Content.decode(plainTextBuffer);
const { dataMessage, dataExtractionNotification, typingMessage } = contentDecoded;
if (dataMessage && dataMessage.timestamp && dataMessage.timestamp > 0) {
+ // this is a sync message, do not overwrite the message timestamp
+ if (dataMessage.syncTarget) {
+ return {
+ overRiddenTimestampBuffer: plainTextBuffer,
+ diffTimestamp: _.toNumber(dataMessage.timestamp),
+ };
+ }
dataMessage.timestamp = diffTimestamp;
}
if (
@@ -86,7 +93,8 @@ export async function send(
// and the isDuplicate messages relies on sent_at timestamp to be valid.
const found = await Data.getMessageById(message.identifier);
- if (found) {
+ // make sure to not update the send timestamp if this a currently syncing message
+ if (found && !found.get('sentSync')) {
found.set({ sent_at: diffTimestamp });
await found.commit();
}