Add emoji picker

This commit is contained in:
benoit.martins 2025-03-26 21:49:37 +01:00
parent 512ca5afe8
commit 3517cf69cd

View file

@ -625,6 +625,12 @@ struct ConversationFragment: View {
HStack(spacing: 0) {
if !voiceRecordingInProgress {
Button {
isMessageTextFocused = true
DispatchQueue.main.async {
if let inputView = UIResponder.currentFirstResponder() as? UITextField {
inputView.inputView = inputView.inputView
}
}
} label: {
Image("smiley")
.renderingMode(.template)
@ -635,6 +641,15 @@ struct ConversationFragment: View {
.padding(.top, 4)
}
.padding(.horizontal, isMessageTextFocused ? 0 : 2)
.onChange(of: isMessageTextFocused) { focused in
if focused {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
if let inputView = UIResponder.currentFirstResponder() as? UITextField {
inputView.inputView = UIInputView(frame: CGRect.zero, inputViewStyle: .keyboard)
}
}
}
}
Button {
self.isShowPhotoLibrary = true
@ -1361,6 +1376,21 @@ struct VoiceRecorderPlayer: View {
timer = nil
}
}
extension UIResponder {
private static weak var _currentFirstResponder: UIResponder?
static func currentFirstResponder() -> UIResponder? {
_currentFirstResponder = nil
UIApplication.shared.sendAction(#selector(findFirstResponder), to: nil, from: nil, for: nil)
return _currentFirstResponder
}
@objc private func findFirstResponder() {
UIResponder._currentFirstResponder = self
}
}
/*
#Preview {
ConversationFragment(conversationViewModel: ConversationViewModel(), conversationsListViewModel: ConversationsListViewModel(), sections: [MessagesSection], ids: [""])