Fixes the missing channel header in conversations.
This commit is contained in:
@@ -2397,40 +2397,41 @@ private fun ReplyRow(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val showChannelInfo by remember(note) {
|
||||||
|
derivedStateOf {
|
||||||
|
if (noteEvent is ChannelMessageEvent || noteEvent is LiveActivitiesChatMessageEvent) {
|
||||||
|
note.channelHex()
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
showChannelInfo?.let {
|
||||||
|
ChannelHeader(
|
||||||
|
channelHex = it,
|
||||||
|
showVideo = false,
|
||||||
|
showBottomDiviser = false,
|
||||||
|
sendToChannel = true,
|
||||||
|
modifier = MaterialTheme.colors.replyModifier.padding(10.dp),
|
||||||
|
accountViewModel = accountViewModel,
|
||||||
|
nav = nav
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
if (showReply) {
|
if (showReply) {
|
||||||
val replyingDirectlyTo = remember { note.replyTo?.lastOrNull { it.event?.kind() != CommunityDefinitionEvent.kind } }
|
val replyingDirectlyTo = remember { note.replyTo?.lastOrNull { it.event?.kind() != CommunityDefinitionEvent.kind } }
|
||||||
if (replyingDirectlyTo != null && unPackReply) {
|
if (replyingDirectlyTo != null && unPackReply) {
|
||||||
ReplyNoteComposition(replyingDirectlyTo, backgroundColor, accountViewModel, nav)
|
ReplyNoteComposition(replyingDirectlyTo, backgroundColor, accountViewModel, nav)
|
||||||
Spacer(modifier = StdVertSpacer)
|
Spacer(modifier = StdVertSpacer)
|
||||||
} else {
|
} else if (showChannelInfo != null) {
|
||||||
// ReplyInformation(note.replyTo, noteEvent.mentions(), accountViewModel, nav)
|
val replies = remember { note.replyTo?.toImmutableList() }
|
||||||
}
|
val mentions = remember {
|
||||||
} else {
|
(note.event as? BaseTextNoteEvent)?.mentions()?.toImmutableList()
|
||||||
val showChannelReply by remember {
|
?: persistentListOf()
|
||||||
derivedStateOf {
|
|
||||||
(noteEvent is ChannelMessageEvent && (note.replyTo != null || noteEvent.hasAnyTaggedUser())) ||
|
|
||||||
(noteEvent is LiveActivitiesChatMessageEvent && (note.replyTo != null || noteEvent.hasAnyTaggedUser()))
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (showChannelReply) {
|
ReplyInformationChannel(replies, mentions, accountViewModel, nav)
|
||||||
val channelHex = note.channelHex()
|
|
||||||
channelHex?.let {
|
|
||||||
ChannelHeader(
|
|
||||||
channelHex = channelHex,
|
|
||||||
showVideo = false,
|
|
||||||
showBottomDiviser = false,
|
|
||||||
sendToChannel = true,
|
|
||||||
modifier = remember { Modifier.padding(vertical = 5.dp) },
|
|
||||||
accountViewModel = accountViewModel,
|
|
||||||
nav = nav
|
|
||||||
)
|
|
||||||
|
|
||||||
val replies = remember { note.replyTo?.toImmutableList() }
|
|
||||||
val mentions = remember { (note.event as? BaseTextNoteEvent)?.mentions()?.toImmutableList() ?: persistentListOf() }
|
|
||||||
|
|
||||||
ReplyInformationChannel(replies, mentions, accountViewModel, nav)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ open class Event(
|
|||||||
|
|
||||||
override fun toJson(): String = mapper.writeValueAsString(toJsonObject())
|
override fun toJson(): String = mapper.writeValueAsString(toJsonObject())
|
||||||
|
|
||||||
fun hasAnyTaggedUser() = tags.any { it.size > 1 && it[0] == "p" }
|
override fun hasAnyTaggedUser() = tags.any { it.size > 1 && it[0] == "p" }
|
||||||
|
|
||||||
override fun taggedUsers() = tags.filter { it.size > 1 && it[0] == "p" }.map { it[1] }
|
override fun taggedUsers() = tags.filter { it.size > 1 && it[0] == "p" }.map { it[1] }
|
||||||
override fun taggedEvents() = tags.filter { it.size > 1 && it[0] == "e" }.map { it[1] }
|
override fun taggedEvents() = tags.filter { it.size > 1 && it[0] == "e" }.map { it[1] }
|
||||||
|
|||||||
@@ -63,6 +63,8 @@ interface EventInterface {
|
|||||||
fun subject(): String?
|
fun subject(): String?
|
||||||
fun zapraiserAmount(): Long?
|
fun zapraiserAmount(): Long?
|
||||||
|
|
||||||
|
fun hasAnyTaggedUser(): Boolean
|
||||||
|
|
||||||
fun taggedAddresses(): List<ATag>
|
fun taggedAddresses(): List<ATag>
|
||||||
fun taggedUsers(): List<HexKey>
|
fun taggedUsers(): List<HexKey>
|
||||||
fun taggedEvents(): List<HexKey>
|
fun taggedEvents(): List<HexKey>
|
||||||
|
|||||||
Reference in New Issue
Block a user