fix for bug and leave alert

This commit is contained in:
Utsav Dave
2025-07-07 23:24:55 -04:00
parent 2afc32afbf
commit 33f6f3be0c
+15 -4
View File
@@ -26,6 +26,7 @@ struct ContentView: View {
@State private var showPasswordError = false @State private var showPasswordError = false
@State private var showCommandSuggestions = false @State private var showCommandSuggestions = false
@State private var commandSuggestions: [String] = [] @State private var commandSuggestions: [String] = []
@State private var showLeaveChannelAlert = false
private var backgroundColor: Color { private var backgroundColor: Color {
colorScheme == .dark ? Color.black : Color.white colorScheme == .dark ? Color.black : Color.white
@@ -289,13 +290,21 @@ struct ContentView: View {
// Leave channel button // Leave channel button
Button(action: { Button(action: {
viewModel.leaveChannel(currentChannel) showLeaveChannelAlert = true
}) { }) {
Text("leave") Text("leave")
.font(.system(size: 12, design: .monospaced)) .font(.system(size: 12, design: .monospaced))
.foregroundColor(Color.red) .foregroundColor(Color.red)
} }
.buttonStyle(.plain) .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 { } else {
// Public chat header // Public chat header
@@ -617,6 +626,7 @@ struct ContentView: View {
.textFieldStyle(.plain) .textFieldStyle(.plain)
.font(.system(size: 14, design: .monospaced)) .font(.system(size: 14, design: .monospaced))
.foregroundColor(textColor) .foregroundColor(textColor)
.autocorrectionDisabled()
.focused($isTextFieldFocused) .focused($isTextFieldFocused)
.onChange(of: messageText) { newValue in .onChange(of: messageText) { newValue in
// Get cursor position (approximate - end of text for now) // Get cursor position (approximate - end of text for now)
@@ -682,9 +692,10 @@ struct ContentView: View {
Button(action: sendMessage) { Button(action: sendMessage) {
Image(systemName: "arrow.up.circle.fill") Image(systemName: "arrow.up.circle.fill")
.font(.system(size: 20)) .font(.system(size: 20))
.foregroundColor((viewModel.selectedPrivateChatPeer != nil || .foregroundColor(messageText.isEmpty ? Color.gray :
(viewModel.currentChannel != nil && viewModel.passwordProtectedChannels.contains(viewModel.currentChannel ?? ""))) (viewModel.selectedPrivateChatPeer != nil ||
? Color.orange : textColor) (viewModel.currentChannel != nil && viewModel.passwordProtectedChannels.contains(viewModel.currentChannel ?? "")))
? Color.orange : textColor)
} }
.buttonStyle(.plain) .buttonStyle(.plain)
.padding(.trailing, 12) .padding(.trailing, 12)