mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 10:33:45 +00:00
Small tweaks (#482)
* #449: Hide the keyboard when scrolling during a search. * Tidy up the reactions picker.
This commit is contained in:
@@ -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)
|
|
||||||
.onTapGesture {
|
|
||||||
context.send(viewAction: .emojiTapped(emoji: emoji))
|
context.send(viewAction: .emojiTapped(emoji: emoji))
|
||||||
|
} label: {
|
||||||
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user