Reply : refactor so we can use ReplyToDetails in Composer and Timeline

This commit is contained in:
ganfra 2024-06-21 12:23:17 +02:00
parent 78da033541
commit 71667dc235
18 changed files with 290 additions and 460 deletions

View file

@ -582,9 +582,22 @@ class RustTimeline(
}
}
override suspend fun loadReplyDetails(eventId: EventId): Result<InReplyTo> {
return runCatching {
inner.loadReplyDetails(eventId.value).use(inReplyToMapper::map)
override suspend fun loadReplyDetails(eventId: EventId): Result<InReplyTo> = withContext(dispatcher) {
runCatching {
val timelineItem = _timelineItems.value.firstOrNull { timelineItem ->
timelineItem is MatrixTimelineItem.Event && timelineItem.eventId == eventId
} as? MatrixTimelineItem.Event
if (timelineItem != null) {
InReplyTo.Ready(
eventId = eventId,
content = timelineItem.event.content,
senderId = timelineItem.event.sender,
senderProfile = timelineItem.event.senderProfile,
)
} else {
inner.loadReplyDetails(eventId.value).use(inReplyToMapper::map)
}
}
}
}