diff --git a/ElementX/Sources/Screens/RoomDirectorySearchScreen/RoomDirectorySearchScreenViewModel.swift b/ElementX/Sources/Screens/RoomDirectorySearchScreen/RoomDirectorySearchScreenViewModel.swift index 55ad1d3bc..1e5ebb557 100644 --- a/ElementX/Sources/Screens/RoomDirectorySearchScreen/RoomDirectorySearchScreenViewModel.swift +++ b/ElementX/Sources/Screens/RoomDirectorySearchScreen/RoomDirectorySearchScreenViewModel.swift @@ -104,6 +104,10 @@ class RoomDirectorySearchScreenViewModel: RoomDirectorySearchScreenViewModelType } private func loadNextPage() { + guard !state.isLoading else { + return + } + Task { state.isLoading = true let _ = await roomDirectorySearchProxy.nextPage() diff --git a/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectorySearchScreen.swift b/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectorySearchScreen.swift index a5b07380a..ffccf4d77 100644 --- a/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectorySearchScreen.swift +++ b/ElementX/Sources/Screens/RoomDirectorySearchScreen/View/RoomDirectorySearchScreen.swift @@ -40,14 +40,12 @@ struct RoomDirectorySearchScreen: View { .foregroundColor(.compound.textSecondary) .frame(maxWidth: .infinity) .accessibilityIdentifier(A11yIdentifiers.startChatScreen.searchNoResults) - } else { - // This needs to be in the else as when you start a search, the results are cleared making the footer visible. - // We only want to trigger the pagination when the state is not loading. - emptyRectangle - .onAppear { - context.send(viewAction: .reachedBottom) - } } + + emptyRectangle + .onAppear { + context.send(viewAction: .reachedBottom) + } } .listRowSeparator(.hidden) }