ReadKeep/readeck/Domain/Model/CardLayoutStyle.swift
Ilyas Hallak df8a7b64b2 feat: Add Kingfisher caching, card layouts, dynamic tag layout, and undo delete
- Integrate Kingfisher for image caching with CachedAsyncImage component
- Add CacheSettingsView for managing image cache size and clearing cache
- Implement three card layout styles: compact, magazine (default), natural
- Add AppearanceSettingsView with visual layout previews and theme settings
- Create Clean Architecture for card layout with domain models and use cases
- Implement FlowLayout for dynamic label width calculation
- Add skeleton loading animation for initial bookmark loads
- Replace delete confirmation dialogs with immediate delete + 3-second undo
- Support multiple simultaneous undo operations with individual progress bars
- Add grayed-out visual feedback for pending deletions
- Centralize notification names in dedicated NotificationNames file
- Remove pagination logic from label management (replaced with FlowLayout)
- Update AsyncImage usage across BookmarkCardView, BookmarkDetailView, ImageViewerView
- Improve UI consistency and spacing throughout the app
2025-09-04 10:43:27 +02:00

29 lines
711 B
Swift

import Foundation
enum CardLayoutStyle: String, CaseIterable, Codable {
case compact = "compact"
case magazine = "magazine"
case natural = "natural"
var displayName: String {
switch self {
case .compact:
return "Compact"
case .magazine:
return "Magazine"
case .natural:
return "Natural"
}
}
var description: String {
switch self {
case .compact:
return "Small thumbnails with content focus"
case .magazine:
return "Fixed height headers for consistent layout"
case .natural:
return "Images in original aspect ratio"
}
}
}