This commit is contained in:
fmodf 2024-07-02 10:32:14 +02:00
parent a4ccd9af0d
commit 57ba06a94e
6 changed files with 34 additions and 3 deletions

View file

@ -5,4 +5,6 @@ enum ConversationAction: Codable {
case sendMessage(from: String, to: String, body: String)
case setReplyText(String)
case showAttachmentPicker(Bool)
}

View file

@ -17,6 +17,9 @@ extension ConversationState {
state.replyText = text.makeReply
}
case .showAttachmentPicker(let flag):
state.attachmentPickerVisible = flag
default:
break
}

View file

@ -4,6 +4,7 @@ struct ConversationState: Stateable {
var currentMessages: [Message]
var replyText: String
var attachmentPickerVisible: Bool
}
// MARK: Init
@ -11,5 +12,6 @@ extension ConversationState {
init() {
currentMessages = []
replyText = ""
attachmentPickerVisible = false
}
}

View file

@ -0,0 +1,16 @@
import SwiftUI
struct AttachmentPickerScreen: View {
@EnvironmentObject var store: AppStore
var body: some View {
VStack {
Button {
store.dispatch(.conversationAction(.showAttachmentPicker(false)))
} label: {
Text("Back")
}
Text("Do It")
}
}
}

View file

@ -89,7 +89,7 @@ struct ConversationScreen: View {
}
}
.safeAreaInset(edge: .bottom, spacing: 0) {
ConversationTextInput()
ConversationTextInput(autoScroll: $autoScroll)
}
}
}

View file

@ -6,6 +6,7 @@ struct ConversationTextInput: View {
@State private var messageStr = ""
@FocusState private var isFocused: Bool
@Binding var autoScroll: Bool
var body: some View {
VStack(spacing: 0) {
@ -19,7 +20,7 @@ struct ConversationTextInput: View {
Text(replyText)
.font(.body3)
.foregroundColor(Color.Main.black)
.multilineTextAlignment(/*@START_MENU_TOKEN@*/ .leading/*@END_MENU_TOKEN@*/)
.multilineTextAlignment(.leading)
.lineLimit(3)
.padding(8)
Spacer()
@ -48,7 +49,7 @@ struct ConversationTextInput: View {
.foregroundColor(.Tango.blueLight)
.padding(.leading, 8)
.tappablePadding(.symmetric(8)) {
print("Attach file")
store.dispatch(.conversationAction(.showAttachmentPicker(true)))
}
TextField(L10n.Chat.textfieldPrompt, text: $messageStr)
.font(.body1)
@ -75,6 +76,7 @@ struct ConversationTextInput: View {
messageStr = ""
// UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
store.dispatch(.conversationAction(.setReplyText("")))
autoScroll = true
}
}
}
@ -86,6 +88,12 @@ struct ConversationTextInput: View {
isFocused = true
}
}
.fullScreenCover(isPresented: Binding<Bool>(
get: { store.state.conversationsState.attachmentPickerVisible },
set: { _ in }
)) {
AttachmentPickerScreen()
}
}
private var replyText: String {