ReadKeep/readeck/Domain/Model/BookmarkUpdateRequest.swift
Ilyas Hallak 8e8e67bfe1 UI/UX: Bookmark Detail and CardView improvements
- Progress indicator as a compact circle at the bottom right of the CardView, with percent display
- Jump-to-progress button in detail view, using ScrollPosition logic (removed iOS 17 mention)
- Archive/Unarchive button with flexible parameter and label
- Various bugfixes and refactoring (progress, mock, WebView, strings)
- Improved reading progress logic and display
- Code cleanup: removed debug prints, mutated properties directly
2025-07-23 22:15:21 +02:00

71 lines
2.1 KiB
Swift

import Foundation
struct BookmarkUpdateRequest {
let addLabels: [String]?
let isArchived: Bool?
let isDeleted: Bool?
let isMarked: Bool?
let labels: [String]?
let readAnchor: String?
let readProgress: Int?
let removeLabels: [String]?
let title: String?
init(
addLabels: [String]? = nil,
isArchived: Bool? = nil,
isDeleted: Bool? = nil,
isMarked: Bool? = nil,
labels: [String]? = nil,
readAnchor: String? = nil,
readProgress: Int? = nil,
removeLabels: [String]? = nil,
title: String? = nil
) {
self.addLabels = addLabels
self.isArchived = isArchived
self.isDeleted = isDeleted
self.isMarked = isMarked
self.labels = labels
self.readAnchor = readAnchor
self.readProgress = readProgress
self.removeLabels = removeLabels
self.title = title
}
}
extension BookmarkUpdateRequest {
static func archive(_ isArchived: Bool) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(isArchived: isArchived)
}
static func favorite(_ isMarked: Bool) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(isMarked: isMarked)
}
static func delete(_ isDeleted: Bool) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(isDeleted: isDeleted)
}
static func updateProgress(_ progress: Int, anchor: String? = nil) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(readAnchor: anchor, readProgress: progress)
}
static func updateTitle(_ title: String) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(title: title)
}
static func updateLabels(_ labels: [String]) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(labels: labels)
}
static func addLabels(_ labels: [String]) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(addLabels: labels)
}
static func removeLabels(_ labels: [String]) -> BookmarkUpdateRequest {
return BookmarkUpdateRequest(removeLabels: labels)
}
}