| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- //
- // URLHintMappingView.swift
- // Todos
- //
- // Created by Sam Jaffe on 3/2/26.
- //
- import SwiftUI
- struct URLHintMappingView: View {
- @AppStorage(UserDefaultsKeys.UrlHints) var allHints = URLHintArray()
- @State var active = URLHint()
- var body: some View {
- 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 {
- URLHintMappingView()
- }
|