mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-06-29 23:20:42 +02:00
Reducing the chance of a bug when loading chatroom without a user
This commit is contained in:
@ -16,17 +16,33 @@ object NostrChatRoomDataSource: NostrDataSource<Note>("ChatroomFeed") {
|
|||||||
withUser = LocalCache.users[userId]
|
withUser = LocalCache.users[userId]
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createMessagesToMeFilter() = JsonFilter(
|
fun createMessagesToMeFilter(): JsonFilter? {
|
||||||
kinds = listOf(PrivateDmEvent.kind),
|
val myPeer = withUser
|
||||||
authors = withUser?.let { listOf(it.pubkeyHex) },
|
|
||||||
tags = mapOf("p" to listOf(account.userProfile().pubkeyHex))
|
|
||||||
)
|
|
||||||
|
|
||||||
fun createMessagesFromMeFilter() = JsonFilter(
|
return if (myPeer != null) {
|
||||||
kinds = listOf(PrivateDmEvent.kind),
|
JsonFilter(
|
||||||
authors = listOf(account.userProfile().pubkeyHex),
|
kinds = listOf(PrivateDmEvent.kind),
|
||||||
tags = withUser?.let { mapOf("p" to listOf(it.pubkeyHex)) }
|
authors = listOf(myPeer.pubkeyHex) ,
|
||||||
)
|
tags = mapOf("p" to listOf(account.userProfile().pubkeyHex))
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun createMessagesFromMeFilter(): JsonFilter? {
|
||||||
|
val myPeer = withUser
|
||||||
|
|
||||||
|
return if (myPeer != null) {
|
||||||
|
JsonFilter(
|
||||||
|
kinds = listOf(PrivateDmEvent.kind),
|
||||||
|
authors = listOf(account.userProfile().pubkeyHex),
|
||||||
|
tags = mapOf("p" to listOf(myPeer.pubkeyHex))
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val inandoutChannel = requestNewChannel()
|
val inandoutChannel = requestNewChannel()
|
||||||
|
|
||||||
@ -42,6 +58,6 @@ object NostrChatRoomDataSource: NostrDataSource<Note>("ChatroomFeed") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun updateChannelFilters() {
|
override fun updateChannelFilters() {
|
||||||
inandoutChannel.filter = listOf(createMessagesToMeFilter(), createMessagesFromMeFilter()).ifEmpty { null }
|
inandoutChannel.filter = listOfNotNull(createMessagesToMeFilter(), createMessagesFromMeFilter()).ifEmpty { null }
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user