Consolidate images and files
This commit is contained in:
46
CHDataManagement/Views/Files/FileToAdd.swift
Normal file
46
CHDataManagement/Views/Files/FileToAdd.swift
Normal file
@ -0,0 +1,46 @@
|
||||
import Foundation
|
||||
|
||||
final class FileToAdd: ObservableObject {
|
||||
|
||||
unowned let content: Content
|
||||
|
||||
let url: URL
|
||||
|
||||
@Published
|
||||
var uniqueId: String
|
||||
|
||||
@Published
|
||||
var isSelected: Bool = true
|
||||
|
||||
init(content: Content, url: URL) {
|
||||
self.content = content
|
||||
self.url = url
|
||||
self.uniqueId = url.lastPathComponent
|
||||
}
|
||||
|
||||
var idAlreadyExists: Bool {
|
||||
content.files.contains { $0.id == uniqueId }
|
||||
}
|
||||
}
|
||||
|
||||
extension FileToAdd: Identifiable {
|
||||
|
||||
var id: URL {
|
||||
url
|
||||
}
|
||||
}
|
||||
|
||||
extension FileToAdd: Equatable {
|
||||
|
||||
static func == (lhs: FileToAdd, rhs: FileToAdd) -> Bool {
|
||||
lhs.url == rhs.url
|
||||
}
|
||||
}
|
||||
|
||||
extension FileToAdd: Hashable {
|
||||
|
||||
func hash(into hasher: inout Hasher) {
|
||||
hasher.combine(url)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user