diff --git a/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/FeedListViewModel.kt b/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/FeedListViewModel.kt index 13e30cb1..7c358642 100755 --- a/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/FeedListViewModel.kt +++ b/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/FeedListViewModel.kt @@ -35,6 +35,7 @@ import androidx.lifecycle.viewmodel.viewModelFactory import co.touchlab.kermit.Logger import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO +import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.launch class FeedListViewModel( @@ -60,9 +61,9 @@ class FeedListViewModel( viewModelScope.launch(Dispatchers.IO) { nostrRepository.observeNostrFeed( synchronizationFilter - ).collect { localNostrEvents -> + ).distinctUntilChanged().collect { localNostrEvents -> feedListUIState = FeedListUIState.Loaded( - localNostrEvents = localNostrEvents?.filterNotNull() ?: emptyList() + localNostrEvents = localNostrEvents ) } } diff --git a/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/SearchResultViewModel.kt b/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/SearchResultViewModel.kt index 93e039a2..e57288d8 100755 --- a/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/SearchResultViewModel.kt +++ b/composeApp/src/commonMain/kotlin/ac/cord/auxiliary/compose/ui/view/model/SearchResultViewModel.kt @@ -26,6 +26,7 @@ import com.vitorpamplona.quartz.nip71Video.VideoNormalEvent import com.vitorpamplona.quartz.nip71Video.VideoShortEvent import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO +import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.launch enum class SearchResultType { @@ -159,9 +160,9 @@ class SearchResultViewModel( logger.d("loadSearchResultFeed: $searchQuery") viewModelScope.launch(Dispatchers.IO) { // This is something not taking into consideration the results we are actually looking for... - nostrRepository.observeNostrFeed(synchronizationFilter).collect { localNostrEvents -> + nostrRepository.observeNostrFeed(synchronizationFilter).distinctUntilChanged().collect { localNostrEvents -> searchResultListUIState = SearchResultListUIState.Loaded( - localNostrEvents = localNostrEvents?.filterNotNull() ?: emptyList() + localNostrEvents = localNostrEvents ) } }