diff --git a/src/app/components/CallEmbedProvider.tsx b/src/app/components/CallEmbedProvider.tsx
index 47ecafc5d..570f8d6b4 100644
--- a/src/app/components/CallEmbedProvider.tsx
+++ b/src/app/components/CallEmbedProvider.tsx
@@ -128,6 +128,13 @@ function IncomingCall({ dm, info, onIgnore, onAnswer, onReject }: IncomingCallPr
}
}, [playSound, info.notificationType]);
+ useEffect(() => {
+ const remaining = info.senderTs + info.lifetime - Date.now();
+ if (remaining <= 0) { onIgnore(); return; }
+ const id = setTimeout(onIgnore, remaining);
+ return () => clearTimeout(id);
+ }, [info.senderTs, info.lifetime, onIgnore]);
+
return (
<>
}>
diff --git a/src/app/components/message/content/FallbackContent.tsx b/src/app/components/message/content/FallbackContent.tsx
index 56665a4af..f917b09db 100644
--- a/src/app/components/message/content/FallbackContent.tsx
+++ b/src/app/components/message/content/FallbackContent.tsx
@@ -8,11 +8,7 @@ export const MessageDeletedContent = as<'div', { children?: never; reason?: stri
({ reason, ...props }, ref) => (
- {reason ? (
- {reason}
- ) : (
- This message has been deleted
- )}
+ {reason ? `This message has been deleted — ${reason}` : 'This message has been deleted'}
)
);