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