This commit is contained in:
@@ -2,7 +2,7 @@ import Foundation
|
|||||||
import SwiftData
|
import SwiftData
|
||||||
|
|
||||||
@Model
|
@Model
|
||||||
class Account {
|
class Account: Identifiable {
|
||||||
@Attribute(.unique) var id: UUID
|
@Attribute(.unique) var id: UUID
|
||||||
var name: String
|
var name: String
|
||||||
var accessKeyId: String
|
var accessKeyId: String
|
||||||
@@ -109,6 +109,22 @@ enum DownloadStatus: String, Codable {
|
|||||||
case pending, downloading, completed, failed
|
case pending, downloading, completed, failed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum FileConflictStrategy: String, CaseIterable, Identifiable {
|
||||||
|
case skip
|
||||||
|
case overwrite
|
||||||
|
case rename
|
||||||
|
|
||||||
|
var id: String { rawValue }
|
||||||
|
|
||||||
|
var label: String {
|
||||||
|
switch self {
|
||||||
|
case .skip: return "跳过已存在文件"
|
||||||
|
case .overwrite: return "覆盖已有文件"
|
||||||
|
case .rename: return "自动重命名(加序号)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct VideoItem: Identifiable, Codable, Equatable {
|
struct VideoItem: Identifiable, Codable, Equatable {
|
||||||
var id: String { videoId }
|
var id: String { videoId }
|
||||||
var videoId: String
|
var videoId: String
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import SwiftData
|
|||||||
struct AccountListView: View {
|
struct AccountListView: View {
|
||||||
@EnvironmentObject var accountStore: AccountStore
|
@EnvironmentObject var accountStore: AccountStore
|
||||||
@Query(sort: \Account.createdAt, order: .reverse) private var accounts: [Account]
|
@Query(sort: \Account.createdAt, order: .reverse) private var accounts: [Account]
|
||||||
@State private var showForm = false
|
|
||||||
@State private var editingAccount: Account?
|
@State private var editingAccount: Account?
|
||||||
|
@State private var showAddForm = false
|
||||||
@State private var errorMessage: String?
|
@State private var errorMessage: String?
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@@ -13,8 +13,7 @@ struct AccountListView: View {
|
|||||||
HStack {
|
HStack {
|
||||||
Spacer()
|
Spacer()
|
||||||
Button("添加账号") {
|
Button("添加账号") {
|
||||||
editingAccount = nil
|
showAddForm = true
|
||||||
showForm = true
|
|
||||||
}
|
}
|
||||||
.buttonStyle(.borderedProminent)
|
.buttonStyle(.borderedProminent)
|
||||||
}
|
}
|
||||||
@@ -62,7 +61,6 @@ struct AccountListView: View {
|
|||||||
|
|
||||||
Button("编辑") {
|
Button("编辑") {
|
||||||
editingAccount = account
|
editingAccount = account
|
||||||
showForm = true
|
|
||||||
}
|
}
|
||||||
.buttonStyle(.borderless)
|
.buttonStyle(.borderless)
|
||||||
|
|
||||||
@@ -75,8 +73,11 @@ struct AccountListView: View {
|
|||||||
.padding(.vertical, 4)
|
.padding(.vertical, 4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.sheet(isPresented: $showForm) {
|
.sheet(item: $editingAccount) { account in
|
||||||
AccountFormView(account: editingAccount)
|
AccountFormView(account: account)
|
||||||
|
}
|
||||||
|
.sheet(isPresented: $showAddForm) {
|
||||||
|
AccountFormView(account: nil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user