Files
bearwave-mac/Sources/BearWaveCore/Views/GroupRowView.swift
2026-06-25 09:21:42 +02:00

62 lines
1.7 KiB
Swift

import SwiftUI
struct GroupRowView: View {
@Environment(AppModel.self) private var model
let group: StationGroup
@State private var showingRenameSheet = false
var body: some View {
HStack {
Label(group.name, systemImage: "folder.fill")
Spacer()
Text(group.stationIDs.count, format: .number)
.font(.caption)
.foregroundStyle(.secondary)
}
.tag(group.id)
.contextMenu {
Button("Rename") {
showingRenameSheet = true
}
Button("Delete") {
model.library.deleteGroup(group)
}
}
.sheet(isPresented: $showingRenameSheet) {
RenameGroupView(group: group)
.environment(model)
}
}
}
struct RenameGroupView: View {
@Environment(AppModel.self) private var model
@Environment(\.dismiss) private var dismiss
let group: StationGroup
@State private var name = ""
var body: some View {
VStack(alignment: .leading, spacing: 16) {
Text("Rename folder")
.font(.title2.bold())
TextField("Folder name", text: $name)
.textFieldStyle(.roundedBorder)
.onAppear { name = group.name }
HStack {
Spacer()
Button("Cancel") { dismiss() }
Button("Rename") {
model.library.renameGroup(group, to: name)
dismiss()
}
.keyboardShortcut(.defaultAction)
.disabled(name.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty)
}
}
.padding(24)
.frame(width: 340)
}
}