wake-ios/wake/Models/UploadModels.swift
2025-08-22 18:58:08 +08:00

58 lines
1.7 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import SwiftUI
///
public enum UploadStatus: Equatable {
case idle
case uploading(progress: Double)
case success
case failure(Error)
public var isUploading: Bool {
if case .uploading = self { return true }
return false
}
public var progress: Double {
if case let .uploading(progress) = self { return progress }
return 0
}
public static func == (lhs: UploadStatus, rhs: UploadStatus) -> Bool {
switch (lhs, rhs) {
case (.idle, .idle):
return true
case let (.uploading(lhsProgress), .uploading(rhsProgress)):
// 使
return abs(lhsProgress - rhsProgress) < 0.001
case (.success, .success):
return true
case (.failure, .failure):
// Error
//
return false
default:
return false
}
}
}
///
public struct UploadResult: Identifiable, Equatable {
public let id = UUID()
public var fileId: String
public var previewFileId: String
public let image: UIImage
public var status: UploadStatus = .idle
public init(fileId: String = "", previewFileId: String = "", image: UIImage, status: UploadStatus = .idle) {
self.fileId = fileId
self.previewFileId = previewFileId
self.image = image
self.status = status
}
public static func == (lhs: UploadResult, rhs: UploadResult) -> Bool {
lhs.id == rhs.id
}
}