| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- //
- // URLHintPreferencePane.swift
- // Todos
- //
- // Created by Sam Jaffe on 3/1/26.
- //
- import SwiftUI
- struct SettingsView: View {
- @AppStorage(UserDefaultsKeys.UrlHints) var allHints = URLHintArray()
- @State var active = URLHint()
-
- var body: some View {
- TabView {
- Tab("URL Hints", systemImage: "link") {
- Text("Custom rules to expand a tag into a URL")
- Table(of: Binding<URLHint>.self) {
- TableColumn("Tag Prefix") { hint in
- TextField("", text: hint.prefix)
- .onSubmit(addHint)
- }
- TableColumn("URL Expansion") { hint in
- TextField("", text: hint.replacement)
- .onSubmit(addHint)
- }
- TableColumn("") { hint in
- if hint.id != active.id {
- Button() {
- allHints.removeAll(where: { $0.id == hint.id })
- } label: {
- Label("", systemImage: "trash")
- }
- }
- }.width(max: 20)
- } rows: {
- ForEach($allHints) { hint in
- TableRow(hint)
- }
- TableRow($active)
- }
- }
- }
- }
-
- private func addHint() {
- if active.valid {
- allHints.append(active)
- active = URLHint()
- }
- }
- }
- #Preview {
- SettingsView()
- }
|