Skip to content

Commit

Permalink
Fix scrambled screen when searchinfg (#2191)
Browse files Browse the repository at this point in the history
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
  • Loading branch information
Velin92 and pixlwave authored Nov 30, 2023
1 parent edbac5f commit b7ecb07
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,33 +33,35 @@ struct InviteUsersScreen: View {
.searchableConfiguration(hidesNavigationBar: false)
.compoundSearchField()
.alert(item: $context.alertInfo)
.readFrame($frame)
}

// MARK: - Private

private var mainContent: some View {
Form {
// this is a fix for having the carousel not clipped, and inside the form, so when the search is dismissed, it wont break the design
Section {
EmptyView()
} header: {
VStack(spacing: 8) {
selectedUsersSection
.textCase(.none)

if context.viewState.isSearching {
ProgressView()
.frame(maxWidth: .infinity, alignment: .center)
.listRowBackground(Color.clear)
GeometryReader { proxy in
Form {
// this is a fix for having the carousel not clipped, and inside the form, so when the search is dismissed, it wont break the design
Section {
EmptyView()
} header: {
VStack(spacing: 8) {
selectedUsersSection
.textCase(.none)
.frame(width: proxy.size.width)

if context.viewState.isSearching {
ProgressView()
.frame(maxWidth: .infinity, alignment: .center)
.listRowBackground(Color.clear)
}
}
}
}

if context.viewState.hasEmptySearchResults {
noResultsContent
} else {
usersSection
if context.viewState.hasEmptySearchResults {
noResultsContent
} else {
usersSection
}
}
}
}
Expand Down Expand Up @@ -97,7 +99,6 @@ struct InviteUsersScreen: View {
}
}

@State private var frame: CGRect = .zero
@ScaledMetric private var cellWidth: CGFloat = 72

private var selectedUsersSection: some View {
Expand All @@ -120,7 +121,6 @@ struct InviteUsersScreen: View {
.padding(.horizontal, 14)
}
}
.frame(width: frame.width)
}

@ToolbarContentBuilder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,15 @@ struct MessageForwardingScreen: View {
}
// Replace these with ScrollView's `scrollPosition` when dropping iOS 16.
} header: {
Rectangle().hidden().onAppear {
context.send(viewAction: .reachedTop)
}
emptyRectangle
.onAppear {
context.send(viewAction: .reachedTop)
}
} footer: {
Rectangle().hidden().onAppear {
context.send(viewAction: .reachedBottom)
}
emptyRectangle
.onAppear {
context.send(viewAction: .reachedBottom)
}
}
.compoundFormSection()
}
Expand All @@ -59,6 +61,12 @@ struct MessageForwardingScreen: View {
.compoundSearchField()
.disableAutocorrection(true)
}

/// The greedy size of Rectangle can create an issue with the navigation bar when the search is highlighted, so is best to use a fixed frame instead of hidden() or EmptyView()
private var emptyRectangle: some View {
Rectangle()
.frame(width: 0, height: 0)
}
}

private struct MessageForwardingRoomCell: View {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ struct StartChatScreen: View {
.disableInteractiveDismissOnSearch()
.dismissSearchOnDisappear()
.searchable(text: $context.searchQuery, placement: .navigationBarDrawer(displayMode: .always), prompt: L10n.commonSearchForSomeone)
.searchableConfiguration(hidesNavigationBar: false)
.compoundSearchField()
.alert(item: $context.alertInfo)
}
Expand Down

0 comments on commit b7ecb07

Please sign in to comment.