feat: 首次不上传问题
This commit is contained in:
parent
023a64b947
commit
b3d0d026bf
@ -71,24 +71,20 @@ public class MediaUploadManager: ObservableObject {
|
||||
!self.selectedMedia.contains { $0.id == newItem.id }
|
||||
}
|
||||
|
||||
// 使用任务组处理多个媒体项的添加
|
||||
Task { [weak self] in
|
||||
guard let self = self else { return }
|
||||
var updatedMedia = self.selectedMedia
|
||||
for item in newMedia {
|
||||
updatedMedia.append(item)
|
||||
self.uploadStatus[item.id] = .pending
|
||||
}
|
||||
self.selectedMedia = updatedMedia
|
||||
|
||||
// 如果是第一次添加媒体,发送通知
|
||||
if !newMedia.isEmpty, let firstMedia = newMedia.first, self.selectedMedia.count == newMedia.count {
|
||||
NotificationCenter.default.post(
|
||||
name: .didAddFirstMedia,
|
||||
object: nil,
|
||||
userInfo: ["media": firstMedia]
|
||||
)
|
||||
}
|
||||
var updatedMedia = self.selectedMedia
|
||||
for item in newMedia {
|
||||
updatedMedia.append(item)
|
||||
self.uploadStatus[item.id] = .pending
|
||||
}
|
||||
self.selectedMedia = updatedMedia
|
||||
|
||||
// 如果是第一次添加媒体,发送通知
|
||||
if !newMedia.isEmpty, let firstMedia = newMedia.first, self.selectedMedia.count == newMedia.count {
|
||||
NotificationCenter.default.post(
|
||||
name: .didAddFirstMedia,
|
||||
object: nil,
|
||||
userInfo: ["media": firstMedia]
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@ -102,10 +98,8 @@ public class MediaUploadManager: ObservableObject {
|
||||
|
||||
/// 清空所有媒体
|
||||
public func clearAllMedia() {
|
||||
Task { @MainActor in
|
||||
self.selectedMedia.removeAll()
|
||||
self.uploadStatus.removeAll()
|
||||
}
|
||||
selectedMedia.removeAll()
|
||||
uploadStatus.removeAll()
|
||||
}
|
||||
|
||||
/// 开始上传所有选中的媒体
|
||||
|
||||
@ -165,27 +165,23 @@ struct MediaUploadView: View {
|
||||
}
|
||||
}
|
||||
|
||||
// 将新项添加到现有选择的开头
|
||||
let newMedia = newItems + uploadManager.selectedMedia
|
||||
print("📊 更新媒体列表 - 总数: \(newMedia.count) (新增: \(newItems.count), 原有: \(uploadManager.selectedMedia.count))")
|
||||
|
||||
// 1. 清空现有媒体
|
||||
uploadManager.clearAllMedia()
|
||||
print("🧹 已清空现有媒体列表")
|
||||
|
||||
uploadManager.addMedia(newMedia)
|
||||
print("✅ 已添加新媒体到上传管理器")
|
||||
// 2. 添加新选择的媒体
|
||||
uploadManager.addMedia(newItems)
|
||||
print("✅ 已添加 \(newItems.count) 个媒体项到上传管理器")
|
||||
|
||||
// 如果没有选中的媒体,则选中第一个新增的
|
||||
if selectedIndices.isEmpty {
|
||||
// 3. 更新选中状态
|
||||
if selectedIndices.isEmpty, let firstItem = newItems.first {
|
||||
selectedIndices = [0]
|
||||
selectedMedia = newItems.first
|
||||
print("👆 自动选择第一个新增的媒体项: \(selectedMedia?.id ?? "nil")")
|
||||
} else {
|
||||
print("ℹ️ 保持当前选中的媒体项")
|
||||
selectedMedia = firstItem
|
||||
print("👆 自动选择第一个新增的媒体项: \(firstItem.id)")
|
||||
}
|
||||
|
||||
// 开始上传新添加的媒体
|
||||
print("🚀 开始上传新添加的媒体...")
|
||||
// 4. 开始上传
|
||||
print("🚀 开始上传媒体...")
|
||||
uploadManager.startUpload()
|
||||
} else {
|
||||
print("ℹ️ 没有新的媒体项需要添加")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user