From 63d33efb5ef1fb613ae52d18e6bd634bade6c334 Mon Sep 17 00:00:00 2001 From: Mauro Romito Date: Fri, 29 May 2026 15:10:05 +0200 Subject: [PATCH] fix the issue where the empty state overlaps the banner if present --- .../HomeScreen/View/HomeScreenContent.swift | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenContent.swift b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenContent.swift index 54897b764..9d1751977 100644 --- a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenContent.swift +++ b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenContent.swift @@ -16,6 +16,8 @@ struct HomeScreenContent: View { @ObservedObject var context: HomeScreenViewModel.Context let scrollViewAdapter: ScrollViewAdapter + @State private var topSectionHeight: CGFloat = 0 + var body: some View { roomList .sentryTrace("\(Self.self)") @@ -47,7 +49,10 @@ struct HomeScreenContent: View { case .rooms: LazyVStack(spacing: 0) { Section { - if !context.viewState.shouldShowEmptyFilterState { + if context.viewState.shouldShowEmptyFilterState { + RoomListFiltersEmptyStateView(state: context.filtersState) + .frame(maxWidth: .infinity, minHeight: max(0, geometry.size.height - topSectionHeight)) + } else { HomeScreenRoomList(context: context) } } header: { @@ -99,13 +104,6 @@ struct HomeScreenContent: View { scrollView.setContentOffset(oldOffset, animated: false) } } - .overlay { - if context.viewState.shouldShowEmptyFilterState { - RoomListFiltersEmptyStateView(state: context.filtersState) - .background(.compound.bgCanvasDefault) - .frame(maxWidth: .infinity, maxHeight: .infinity) - } - } .scrollDismissesKeyboard(.immediately) .scrollDisabled(context.viewState.roomListMode == .skeletons) .scrollBounceBehavior(context.viewState.roomListMode == .empty ? .basedOnSize : .automatic) @@ -130,6 +128,7 @@ struct HomeScreenContent: View { } } .background(Color.compound.bgCanvasDefault) + .onGeometryChange(for: CGFloat.self, of: \.size.height) { topSectionHeight = $0 } } }