Merge pull request #35 from utsavDave97/main

Fix for send message bug and other new features
This commit is contained in:
jack
2025-07-08 18:49:03 +02:00
committed by GitHub
+24 -5
View File
@@ -26,6 +26,7 @@ struct ContentView: View {
@State private var showPasswordError = false
@State private var showCommandSuggestions = false
@State private var commandSuggestions: [String] = []
@State private var showLeaveChannelAlert = false
private var backgroundColor: Color {
colorScheme == .dark ? Color.black : Color.white
@@ -289,13 +290,21 @@ struct ContentView: View {
// Leave channel button
Button(action: {
viewModel.leaveChannel(currentChannel)
showLeaveChannelAlert = true
}) {
Text("leave")
.font(.system(size: 12, design: .monospaced))
.foregroundColor(Color.red)
}
.buttonStyle(.plain)
.alert("Leave Channel", isPresented: $showLeaveChannelAlert) {
Button("Cancel", role: .cancel) { }
Button("Leave", role: .destructive) {
viewModel.leaveChannel(currentChannel)
}
} message: {
Text("Are you sure you want to leave \(currentChannel)?")
}
}
} else {
// Public chat header
@@ -637,6 +646,7 @@ struct ContentView: View {
.textFieldStyle(.plain)
.font(.system(size: 14, design: .monospaced))
.foregroundColor(textColor)
.autocorrectionDisabled()
.focused($isTextFieldFocused)
.onChange(of: messageText) { newValue in
// Get cursor position (approximate - end of text for now)
@@ -702,9 +712,10 @@ struct ContentView: View {
Button(action: sendMessage) {
Image(systemName: "arrow.up.circle.fill")
.font(.system(size: 20))
.foregroundColor((viewModel.selectedPrivateChatPeer != nil ||
(viewModel.currentChannel != nil && viewModel.passwordProtectedChannels.contains(viewModel.currentChannel ?? "")))
? Color.orange : textColor)
.foregroundColor(messageText.isEmpty ? Color.gray :
(viewModel.selectedPrivateChatPeer != nil ||
(viewModel.currentChannel != nil && viewModel.passwordProtectedChannels.contains(viewModel.currentChannel ?? "")))
? Color.orange : textColor)
}
.buttonStyle(.plain)
.padding(.trailing, 12)
@@ -828,7 +839,7 @@ struct ContentView: View {
// Leave button
Button(action: {
viewModel.leaveChannel(channel)
showLeaveChannelAlert = true
}) {
Text("leave channel")
.font(.system(size: 10, design: .monospaced))
@@ -841,6 +852,14 @@ struct ContentView: View {
)
}
.buttonStyle(.plain)
.alert("Leave Channel", isPresented: $showLeaveChannelAlert) {
Button("Cancel", role: .cancel) { }
Button("Leave", role: .destructive) {
viewModel.leaveChannel(channel)
}
} message: {
Text("Are you sure you want to leave \(channel)?")
}
}
}