Fixes the lack of refresh when adding hidden words in the Security filters

pull/446/merge
Vitor Pamplona 2024-04-18 19:34:15 -04:00
rodzic cdb65640ba
commit 6600a49564
1 zmienionych plików z 12 dodań i 21 usunięć

Wyświetl plik

@ -74,7 +74,6 @@ import com.vitorpamplona.amethyst.ui.screen.NostrSpammerAccountsFeedViewModel
import com.vitorpamplona.amethyst.ui.screen.RefresheableBox
import com.vitorpamplona.amethyst.ui.screen.RefreshingFeedUserFeedView
import com.vitorpamplona.amethyst.ui.screen.StringFeedView
import com.vitorpamplona.amethyst.ui.screen.UserFeedViewModel
import com.vitorpamplona.amethyst.ui.theme.ButtonBorder
import com.vitorpamplona.amethyst.ui.theme.ButtonPadding
import com.vitorpamplona.amethyst.ui.theme.DividerThickness
@ -104,6 +103,12 @@ fun HiddenUsersScreen(
factory = NostrSpammerAccountsFeedViewModel.Factory(accountViewModel.account),
)
WatchAccountAndBlockList(accountViewModel = accountViewModel) {
hiddenFeedViewModel.invalidateData()
spammerFeedViewModel.invalidateData()
hiddenWordsFeedViewModel.invalidateData()
}
HiddenUsersScreen(
hiddenFeedViewModel,
hiddenWordsFeedViewModel,
@ -197,14 +202,8 @@ fun HiddenUsersScreen(
}
HorizontalPager(state = pagerState) { page ->
when (page) {
0 ->
RefreshingUserFeedView(hiddenFeedViewModel, accountViewModel) {
RefreshingFeedUserFeedView(hiddenFeedViewModel, accountViewModel, nav)
}
1 ->
RefreshingUserFeedView(spammerFeedViewModel, accountViewModel) {
RefreshingFeedUserFeedView(spammerFeedViewModel, accountViewModel, nav)
}
0 -> RefreshingFeedUserFeedView(hiddenFeedViewModel, accountViewModel, nav)
1 -> RefreshingFeedUserFeedView(spammerFeedViewModel, accountViewModel, nav)
2 -> HiddenWordsFeed(hiddenWordsViewModel, accountViewModel)
}
}
@ -268,25 +267,17 @@ private fun AddMuteWordTextField(accountViewModel: AccountViewModel) {
}
}
@Composable
fun RefreshingUserFeedView(
feedViewModel: UserFeedViewModel,
accountViewModel: AccountViewModel,
inner: @Composable () -> Unit,
) {
WatchAccountAndBlockList(feedViewModel, accountViewModel)
inner()
}
@Composable
fun WatchAccountAndBlockList(
feedViewModel: UserFeedViewModel,
accountViewModel: AccountViewModel,
invalidate: () -> Unit,
) {
val accountState by accountViewModel.accountLiveData.observeAsState()
val blockListState by accountViewModel.account.flowHiddenUsers.collectAsStateWithLifecycle()
LaunchedEffect(accountViewModel, accountState, blockListState) { feedViewModel.invalidateData() }
LaunchedEffect(accountViewModel, accountState, blockListState) {
invalidate()
}
}
@Composable