+ {avatars.length < receipts.length &&
+ +{receipts.length - avatars.length}
+
}
+
+ {avatars}
+
+
+}
+
+export default ReadReceipts
diff --git a/web/src/ui/timeline/TimelineEvent.css b/web/src/ui/timeline/TimelineEvent.css
index 64afb5f..caa2c9c 100644
--- a/web/src/ui/timeline/TimelineEvent.css
+++ b/web/src/ui/timeline/TimelineEvent.css
@@ -5,10 +5,10 @@ div.timeline-event {
padding: 0 var(--timeline-horizontal-padding);
display: grid;
grid-template:
- "cmc cmc cmc cmc" 0
+ "cmc cmc cmc empty" 0
"avatar gap sender sender" auto
"avatar gap content status" auto
- / var(--timeline-avatar-size) var(--timeline-avatar-gap) 1fr 2rem;
+ / var(--timeline-avatar-size) var(--timeline-avatar-gap) 1fr var(--timeline-status-size);
contain: layout;
margin-top: var(--timeline-message-gap);
@@ -119,9 +119,9 @@ div.timeline-event {
&.same-sender {
grid-template:
- "cmc cmc cmc" 0
+ "cmc cmc empty" 0
"timestamp content status" auto
- / var(--timeline-avatar-total-size) 1fr 2rem;
+ / var(--timeline-avatar-total-size) 1fr var(--timeline-status-size);
margin-top: var(--timeline-message-gap-same-sender);
> div.sender-avatar, > div.event-sender-and-time {
@@ -135,9 +135,9 @@ div.timeline-event {
&.small-event {
grid-template:
- "cmc cmc cmc cmc" 0
+ "cmc cmc cmc empty" 0
"timestamp avatar content status" auto
- / var(--timeline-avatar-total-size) 1.5rem 1fr 2rem;
+ / var(--timeline-avatar-total-size) 1.5rem 1fr var(--timeline-status-size);
> div.sender-avatar {
width: 1.5rem;
diff --git a/web/src/ui/timeline/TimelineEvent.tsx b/web/src/ui/timeline/TimelineEvent.tsx
index dd2b686..3a96fd8 100644
--- a/web/src/ui/timeline/TimelineEvent.tsx
+++ b/web/src/ui/timeline/TimelineEvent.tsx
@@ -23,6 +23,7 @@ import ClientContext from "../ClientContext.ts"
import MainScreenContext from "../MainScreenContext.ts"
import { ModalContext } from "../modal/Modal.tsx"
import { useRoomContext } from "../roomview/roomcontext.ts"
+import ReadReceipts from "./ReadReceipts.tsx"
import { ReplyIDBody } from "./ReplyBody.tsx"
import { ContentErrorBoundary, HiddenEvent, getBodyType, isSmallEvent } from "./content"
import { EventFullMenu, EventHoverMenu, getModalStyleFromMouse } from "./menu"
@@ -201,6 +202,7 @@ const TimelineEvent = ({ evt, prevEvt, disableMenu }: TimelineEventProps) => {
{evt.reactions ?