Refactor profile management

This commit is contained in:
世界
2025-12-03 11:15:56 +08:00
parent adf4e5c75c
commit 727136f187
22 changed files with 1635 additions and 787 deletions
@@ -16,11 +16,23 @@ public struct NewProfileView: View {
public let url: String
}
public struct LocalImportRequest: Hashable, Identifiable {
public var id: String { fileURL.absoluteString }
public let name: String
public let fileURL: URL
public init(name: String, fileURL: URL) {
self.name = name
self.fileURL = fileURL
}
}
public init(
_ importRequest: ImportRequest? = nil,
localImportRequest: LocalImportRequest? = nil,
onSuccess: ((Profile) async -> Void)? = nil
) {
_viewModel = StateObject(wrappedValue: NewProfileViewModel(importRequest: importRequest))
_viewModel = StateObject(wrappedValue: NewProfileViewModel(importRequest: importRequest, localImportRequest: localImportRequest))
self.onSuccess = onSuccess
}
@@ -108,7 +120,7 @@ public struct NewProfileView: View {
Task {
await viewModel.createProfile(
environments: environments,
dismiss: onSuccess == nil ? dismiss : nil,
dismiss: dismiss,
onSuccess: onSuccess
)
}
@@ -149,7 +161,7 @@ public struct NewProfileView: View {
Task {
await viewModel.createProfile(
environments: environments,
dismiss: onSuccess == nil ? dismiss : nil,
dismiss: dismiss,
onSuccess: onSuccess
)
}