Add edit bookmark, offline cache, and unread filter

- Edit bookmark: full PATCH via swipe action or long-press context menu;
  EditBookmarkView covers URL, title, description, tags, and unread toggle
- Offline cache: bookmarks persisted to ApplicationSupport JSON and shown
  instantly on launch; cache is per-server, skipped when unread filter is on
- Unread filter: toolbar toggle sends ?unread=true to the API; title updates
  to "Unread"; no stale-cache flash when toggling
- Extract normalizedURL and parsedTags into String+Helpers, removing three
  copies of URL normalization and two of tag parsing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Krishna Kumar
2026-05-21 11:51:54 -05:00
parent b7ef5c2215
commit 1b40f50aab
11 changed files with 269 additions and 20 deletions

View File

@@ -65,6 +65,20 @@ struct BookmarkCreate: Codable, Sendable {
}
}
struct BookmarkUpdate: Codable, Sendable {
var url: String
var title: String
var description: String
var tagNames: [String]
var unread: Bool
var shared: Bool
enum CodingKeys: String, CodingKey {
case url, title, description, unread, shared
case tagNames = "tag_names"
}
}
struct SmartCollection: Identifiable, Sendable {
let id = UUID()
let name: String