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) } var zapAmount by remember { mutableStateOf<BigDecimal?>(null) }
LaunchedEffect(key1 = userState) { LaunchedEffect(key1 = userState) {
launch(Dispatchers.IO) { launch(Dispatchers.Default) {
val tempAmount = baseUser.zappedAmount() val tempAmount = baseUser.zappedAmount()
withContext(Dispatchers.Main) { if (zapAmount != tempAmount) {
if (zapAmount != tempAmount) { zapAmount = tempAmount
zapAmount = tempAmount
}
} }
} }
} }
@@ -1027,11 +1025,7 @@ private fun WatchFollowChanges(
fun TabReceivedZaps(baseUser: User, accountViewModel: AccountViewModel, nav: (String) -> Unit) { fun TabReceivedZaps(baseUser: User, accountViewModel: AccountViewModel, nav: (String) -> Unit) {
val feedViewModel: NostrUserProfileZapsFeedViewModel = viewModel() val feedViewModel: NostrUserProfileZapsFeedViewModel = viewModel()
val userState by baseUser.live().zaps.observeAsState() WatchZapsAndUpdateFeed(baseUser, feedViewModel)
LaunchedEffect(userState) {
feedViewModel.invalidateData()
}
Column(Modifier.fillMaxHeight()) { Column(Modifier.fillMaxHeight()) {
Column( Column(
@@ -1043,14 +1037,22 @@ fun TabReceivedZaps(baseUser: User, accountViewModel: AccountViewModel, nav: (St
} }
@Composable @Composable
fun TabReports(baseUser: User, accountViewModel: AccountViewModel, nav: (String) -> Unit) { private fun WatchZapsAndUpdateFeed(
val feedViewModel: NostrUserProfileReportFeedViewModel = viewModel() baseUser: User,
feedViewModel: NostrUserProfileZapsFeedViewModel
val userState by baseUser.live().reports.observeAsState() ) {
val userState by baseUser.live().zaps.observeAsState()
LaunchedEffect(userState) { LaunchedEffect(userState) {
feedViewModel.invalidateData() feedViewModel.invalidateData()
} }
}
@Composable
fun TabReports(baseUser: User, accountViewModel: AccountViewModel, nav: (String) -> Unit) {
val feedViewModel: NostrUserProfileReportFeedViewModel = viewModel()
WatchReportsAndUpdateFeed(baseUser, feedViewModel)
Column(Modifier.fillMaxHeight()) { Column(Modifier.fillMaxHeight()) {
Column( 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 @Composable
fun TabRelays(user: User, accountViewModel: AccountViewModel) { fun TabRelays(user: User, accountViewModel: AccountViewModel) {
val feedViewModel: RelayFeedViewModel = viewModel() val feedViewModel: RelayFeedViewModel = viewModel()