Fixes #1640 - Prevent loading skeletons from being dismissed too soon. Avoid weird animations caused by the session verification banner.

This commit is contained in:
Stefan Ceriu 2023-09-12 17:00:27 +03:00 committed by Stefan Ceriu
parent 97aa930852
commit d5e74907ad
2 changed files with 4 additions and 3 deletions

View File

@ -148,8 +148,10 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
.sink { [weak self] state, rooms in
guard let self else { return }
let isLoadingData = !state.isLoaded && rooms.isEmpty
let hasNoRooms = (state.isLoaded && state.totalNumberOfRooms == 0 && rooms.isEmpty)
// Rust sends back loaded even when no rooms are loaded yet, check room for empty to be sure
let isLoadingData = !state.isLoaded || (state.totalNumberOfRooms != 0 && rooms.isEmpty)
let hasNoRooms = state.isLoaded && state.totalNumberOfRooms == 0 && rooms.isEmpty
var roomListMode = self.state.roomListMode
if isLoadingData {

View File

@ -82,7 +82,6 @@ struct HomeScreen: View {
.scrollDismissesKeyboard(.immediately)
.scrollDisabled(context.viewState.roomListMode == .skeletons)
.scrollBounceBehavior(context.viewState.roomListMode == .empty ? .basedOnSize : .automatic)
.animation(.elementDefault, value: context.viewState.showSessionVerificationBanner)
.animation(.elementDefault, value: context.viewState.roomListMode)
.animation(.none, value: context.viewState.visibleRooms)
}