Moves profile watchers to their own compose functions

This commit is contained in:
Vitor Pamplona
2023-06-02 21:28:30 -04:00
parent 31959721b1
commit 5965d9a3bb
@@ -347,12 +347,10 @@ private fun ZapTabHeader(baseUser: User) {
var zapAmount by remember { mutableStateOf<BigDecimal?>(null) }
LaunchedEffect(key1 = userState) {
launch(Dispatchers.IO) {
launch(Dispatchers.Default) {
val tempAmount = baseUser.zappedAmount()
withContext(Dispatchers.Main) {
if (zapAmount != tempAmount) {
zapAmount = tempAmount
}
if (zapAmount != tempAmount) {
zapAmount = tempAmount
}
}
}
@@ -1027,11 +1025,7 @@ private fun WatchFollowChanges(
fun TabReceivedZaps(baseUser: User, accountViewModel: AccountViewModel, nav: (String) -> Unit) {
val feedViewModel: NostrUserProfileZapsFeedViewModel = viewModel()
val userState by baseUser.live().zaps.observeAsState()
LaunchedEffect(userState) {
feedViewModel.invalidateData()
}
WatchZapsAndUpdateFeed(baseUser, feedViewModel)
Column(Modifier.fillMaxHeight()) {
Column(
@@ -1043,14 +1037,22 @@ fun TabReceivedZaps(baseUser: User, accountViewModel: AccountViewModel, nav: (St
}
@Composable
fun TabReports(baseUser: User, accountViewModel: AccountViewModel, nav: (String) -> Unit) {
val feedViewModel: NostrUserProfileReportFeedViewModel = viewModel()
val userState by baseUser.live().reports.observeAsState()
private fun WatchZapsAndUpdateFeed(
baseUser: User,
feedViewModel: NostrUserProfileZapsFeedViewModel
) {
val userState by baseUser.live().zaps.observeAsState()
LaunchedEffect(userState) {
feedViewModel.invalidateData()
}
}
@Composable
fun TabReports(baseUser: User, accountViewModel: AccountViewModel, nav: (String) -> Unit) {
val feedViewModel: NostrUserProfileReportFeedViewModel = viewModel()
WatchReportsAndUpdateFeed(baseUser, feedViewModel)
Column(Modifier.fillMaxHeight()) {
Column(
@@ -1061,6 +1063,17 @@ fun TabReports(baseUser: User, accountViewModel: AccountViewModel, nav: (String)
}
}
@Composable
private fun WatchReportsAndUpdateFeed(
baseUser: User,
feedViewModel: NostrUserProfileReportFeedViewModel
) {
val userState by baseUser.live().reports.observeAsState()
LaunchedEffect(userState) {
feedViewModel.invalidateData()
}
}
@Composable
fun TabRelays(user: User, accountViewModel: AccountViewModel) {
val feedViewModel: RelayFeedViewModel = viewModel()