39 lines
1.3 KiB
Swift
39 lines
1.3 KiB
Swift
|
|
import SwiftUI
|
||
|
|
|
||
|
|
struct ChannelEditView: View {
|
||
|
|
let channelId: UInt32?
|
||
|
|
@Bindable var session: SessionState
|
||
|
|
@Environment(\.dismiss) private var dismiss
|
||
|
|
|
||
|
|
@State private var name = ""
|
||
|
|
@State private var topic = ""
|
||
|
|
|
||
|
|
var body: some View {
|
||
|
|
NavigationStack {
|
||
|
|
Form {
|
||
|
|
Section("Channel Info") {
|
||
|
|
TextField("Name", text: $name)
|
||
|
|
.autocorrectionDisabled()
|
||
|
|
.accessibilityLabel("Channel name")
|
||
|
|
TextField("Topic (optional)", text: $topic)
|
||
|
|
.accessibilityLabel("Channel topic, optional")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
.navigationTitle(channelId == nil ? "New Channel" : "Edit Channel")
|
||
|
|
.navigationBarTitleDisplayMode(.inline)
|
||
|
|
.toolbar {
|
||
|
|
ToolbarItem(placement: .cancellationAction) {
|
||
|
|
Button("Cancel") { dismiss() }
|
||
|
|
}
|
||
|
|
ToolbarItem(placement: .confirmationAction) {
|
||
|
|
Button("Save") {
|
||
|
|
session.createChannel(name: name, topic: topic)
|
||
|
|
dismiss()
|
||
|
|
}
|
||
|
|
.disabled(name.trimmingCharacters(in: .whitespaces).isEmpty)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|