- Refactor authentication flow to require endpoint for login and decouple token saving - Add and integrate search functionality for bookmarks - Simplify and improve server settings setup (remove connection test, direct save & login) - Update sidebar/tab navigation to include search and improve structure - Show placeholder image in BookmarkCardView if no image is available, ensuring consistent layout - Improve BookmarkDetailView header and meta info display - Add utility for domain extraction from URLs - General code cleanup and minor UI/UX improvements
67 lines
1.3 KiB
Swift
67 lines
1.3 KiB
Swift
import Foundation
|
|
|
|
struct BookmarksPage {
|
|
var bookmarks: [Bookmark]
|
|
let currentPage: Int?
|
|
let totalCount: Int?
|
|
let totalPages: Int?
|
|
let links: [String]?
|
|
}
|
|
|
|
struct Bookmark {
|
|
let id: String
|
|
let title: String
|
|
let url: String
|
|
let href: String
|
|
let description: String
|
|
let authors: [String]
|
|
let created: String
|
|
let published: String?
|
|
let updated: String
|
|
let siteName: String
|
|
let site: String
|
|
let readingTime: Int?
|
|
let wordCount: Int?
|
|
let hasArticle: Bool
|
|
let isArchived: Bool
|
|
let isDeleted: Bool
|
|
let isMarked: Bool
|
|
let labels: [String]
|
|
let lang: String?
|
|
let loaded: Bool
|
|
let readProgress: Int
|
|
let documentType: String
|
|
let state: Int
|
|
let textDirection: String
|
|
let type: String
|
|
let resources: BookmarkResources
|
|
}
|
|
|
|
struct BookmarkResources {
|
|
let article: Resource?
|
|
let icon: ImageResource?
|
|
let image: ImageResource?
|
|
let log: Resource?
|
|
let props: Resource?
|
|
let thumbnail: ImageResource?
|
|
}
|
|
|
|
struct Resource {
|
|
let src: String
|
|
}
|
|
|
|
struct ImageResource {
|
|
let src: String
|
|
let height: Int
|
|
let width: Int
|
|
}
|
|
|
|
extension Bookmark: Hashable, Identifiable {
|
|
func hash(into hasher: inout Hasher) {
|
|
hasher.combine(id)
|
|
}
|
|
static func == (lhs: Bookmark, rhs: Bookmark) -> Bool {
|
|
lhs.id == rhs.id
|
|
}
|
|
}
|