Turns the Zap notification card in to ZapRequest/ZapEvent events.
This commit is contained in:
@@ -102,7 +102,7 @@ fun ZapSetCompose(zapSetCard: ZapSetCard, modifier: Modifier = Modifier, isInner
|
|||||||
FlowRow() {
|
FlowRow() {
|
||||||
zapSetCard.zapEvents.forEach {
|
zapSetCard.zapEvents.forEach {
|
||||||
NoteAuthorPicture(
|
NoteAuthorPicture(
|
||||||
note = it,
|
note = it.key,
|
||||||
navController = navController,
|
navController = navController,
|
||||||
userAccount = account.userProfile(),
|
userAccount = account.userProfile(),
|
||||||
size = 35.dp
|
size = 35.dp
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ class LikeSetCard(val note: Note, val likeEvents: List<Note>): Card() {
|
|||||||
override fun id() = note.idHex + "L" + createdAt
|
override fun id() = note.idHex + "L" + createdAt
|
||||||
}
|
}
|
||||||
|
|
||||||
class ZapSetCard(val note: Note, val zapEvents: List<Note>): Card() {
|
class ZapSetCard(val note: Note, val zapEvents: Map<Note, Note>): Card() {
|
||||||
val createdAt = zapEvents.maxOf { it.event?.createdAt ?: 0 }
|
val createdAt = zapEvents.maxOf { it.value.event?.createdAt ?: 0 }
|
||||||
override fun createdAt(): Long {
|
override fun createdAt(): Long {
|
||||||
return createdAt
|
return createdAt
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,15 +71,15 @@ open class CardFeedViewModel(val dataSource: FeedFilter<Note>): ViewModel() {
|
|||||||
|
|
||||||
val reactionCards = reactionsPerEvent.map { LikeSetCard(it.key, it.value) }
|
val reactionCards = reactionsPerEvent.map { LikeSetCard(it.key, it.value) }
|
||||||
|
|
||||||
val zapsPerEvent = mutableMapOf<Note, MutableList<Note>>()
|
val zapsPerEvent = mutableMapOf<Note, MutableMap<Note, Note>>()
|
||||||
notes
|
notes
|
||||||
.filter { it.event is LnZapEvent}
|
.filter { it.event is LnZapEvent}
|
||||||
.forEach { zapEvent ->
|
.forEach { zapEvent ->
|
||||||
val zappedPost = zapEvent.replyTo?.lastOrNull() { it.event !is ChannelMetadataEvent && it.event !is ChannelCreateEvent }
|
val zappedPost = zapEvent.replyTo?.lastOrNull() { it.event !is ChannelMetadataEvent && it.event !is ChannelCreateEvent }
|
||||||
if (zappedPost != null) {
|
if (zappedPost != null) {
|
||||||
val key = zappedPost.zaps.filter { it.value == zapEvent }.keys.firstOrNull()
|
val zapRequest = zappedPost.zaps.filter { it.value == zapEvent }.keys.firstOrNull()
|
||||||
if (key != null) {
|
if (zapRequest != null) {
|
||||||
zapsPerEvent.getOrPut(zappedPost, { mutableListOf() }).add(key)
|
zapsPerEvent.getOrPut(zappedPost, { mutableMapOf() }).put(zapRequest, zapEvent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user