import SwiftUI import UIKit struct ConversationTextInput: View { @Environment(\.router) var router // @EnvironmentObject var messages: MessagesStore // @EnvironmentObject var attachments: AttachmentsStore @State private var messageStr = "" @FocusState private var isFocused: Bool @Binding var autoScroll: Bool var body: some View { VStack(spacing: 0) { Rectangle() .foregroundColor(.Material.Shape.separator) .frame(height: 0.5) .padding(.bottom, 8) // if !messages.replyText.isEmpty { // VStack(spacing: 0) { // HStack(alignment: .top) { // Text(messages.replyText) // .font(.body3) // .foregroundColor(Color.Material.Text.main) // .multilineTextAlignment(.leading) // .lineLimit(3) // .padding(8) // Spacer() // Image(systemName: "xmark") // .font(.title2) // .foregroundColor(.Material.Elements.active) // .padding(.leading, 8) // .tappablePadding(.symmetric(8)) { // messages.replyText = "" // } // .padding(8) // } // .frame(maxWidth: .infinity) // .background(RoundedRectangle(cornerRadius: 4) // .foregroundColor(.Material.Background.light) // .shadow(radius: 0.5) // ) // .padding(.bottom, 8) // .padding(.horizontal, 8) // } // .padding(.horizontal, 8) // } HStack { Image(systemName: "paperclip") .font(.title2) .foregroundColor(.Material.Elements.active) .padding(.leading, 8) .tappablePadding(.symmetric(8)) { router.showScreen(.fullScreenCover) { _ in AttachmentPickerScreen() // .environmentObject(messages) // .environmentObject(attachments) } } TextField("", text: $messageStr, prompt: Text(L10n.Chat.textfieldPrompt).foregroundColor(.Material.Shape.separator), axis: .vertical) .font(.body1) .foregroundColor(Color.Material.Text.main) .accentColor(.Material.Shape.black) .focused($isFocused) .padding(.horizontal, 8) .padding(.vertical, 4) .background(Color.Material.Shape.white) .clipShape(RoundedRectangle(cornerRadius: 8)) .padding(.vertical, 4) let img = messageStr.isEmpty ? "paperplane" : "paperplane.fill" Image(systemName: img) .font(.title2) .foregroundColor(messageStr.isEmpty ? .Material.Elements.inactive : .Material.Elements.active) .padding(.trailing, 8) .tappablePadding(.symmetric(8)) { if !messageStr.isEmpty { // messages.sendMessage(composedMessage) // messageStr = "" // autoScroll = true // if !messages.replyText.isEmpty { // messages.replyText = "" // } } } } } .padding(.bottom, 8) .background(Color.Material.Background.dark) // .onChange(of: messages.replyText) { new in // if !new.isEmpty { // isFocused = true // } // } } private var composedMessage: String { var result = "" // if !messages.replyText.isEmpty { // result += messages.replyText.makeReply + "\n\n" // } // result += messageStr return result } }