Small tweaks (#482)

* #449: Hide the keyboard when scrolling during a search.
* Tidy up the reactions picker.
This commit is contained in:
Doug
2023-01-23 18:32:56 +00:00
committed by GitHub
parent e8b48d4897
commit 7e1593d43d
3 changed files with 13 additions and 6 deletions
@@ -22,6 +22,8 @@ struct EmojiPickerHeaderView: View {
var body: some View { var body: some View {
HStack { HStack {
Text(title) Text(title)
.font(.element.subheadline.bold())
.foregroundColor(.element.primaryContent)
.frame(maxWidth: .infinity, alignment: .leading) .frame(maxWidth: .infinity, alignment: .leading)
} }
} }
@@ -19,24 +19,27 @@ import SwiftUI
struct EmojiPickerScreen: View { struct EmojiPickerScreen: View {
@ObservedObject var context: EmojiPickerScreenViewModel.Context @ObservedObject var context: EmojiPickerScreenViewModel.Context
@State var searchString = "" @State var searchString = ""
@ScaledMetric(relativeTo: .title) var minimumWidth: Double = 50
var body: some View { var body: some View {
ScrollView { ScrollView {
LazyVGrid(columns: [GridItem(.adaptive(minimum: 45))], spacing: 3) { LazyVGrid(columns: [GridItem(.adaptive(minimum: minimumWidth))], spacing: 16) {
ForEach(context.viewState.categories) { category in ForEach(context.viewState.categories) { category in
Section(header: EmojiPickerHeaderView(title: category.name) Section(header: EmojiPickerHeaderView(title: category.name)
.padding(.horizontal, 13) .padding(.horizontal, 13)
.padding(.top, 10)) { .padding(.top, 10)) {
ForEach(category.emojis) { emoji in ForEach(category.emojis) { emoji in
Text(emoji.value) Button {
.frame(width: 45, height: 45) context.send(viewAction: .emojiTapped(emoji: emoji))
.onTapGesture { } label: {
context.send(viewAction: .emojiTapped(emoji: emoji)) Text(emoji.value)
} .font(.element.title1)
}
} }
} }
} }
} }
.padding(.horizontal, 6)
} }
.navigationTitle(ElementL10n.reactions) .navigationTitle(ElementL10n.reactions)
.navigationBarTitleDisplayMode(.inline) .navigationBarTitleDisplayMode(.inline)
@@ -65,5 +68,6 @@ struct EmojiPickerScreen_Previews: PreviewProvider {
NavigationStack { NavigationStack {
EmojiPickerScreen(context: EmojiPickerScreenViewModel(emojiProvider: EmojiProvider()).context) EmojiPickerScreen(context: EmojiPickerScreenViewModel(emojiProvider: EmojiProvider()).context)
} }
.tint(.element.accent)
} }
} }
@@ -67,6 +67,7 @@ struct HomeScreen: View {
.disableAutocorrection(true) .disableAutocorrection(true)
} }
} }
.scrollDismissesKeyboard(.immediately)
.disabled(context.viewState.roomListMode == .skeletons) .disabled(context.viewState.roomListMode == .skeletons)
.animation(.elementDefault, value: context.viewState.showSessionVerificationBanner) .animation(.elementDefault, value: context.viewState.showSessionVerificationBanner)
.animation(.elementDefault, value: context.viewState.roomListMode) .animation(.elementDefault, value: context.viewState.roomListMode)