This commit is contained in:
anlicheng 2026-04-17 16:19:00 +08:00
parent c5b2cb3e83
commit b067991c8b
7 changed files with 111 additions and 109 deletions

View File

@ -58,10 +58,8 @@ struct SettingsAccountView: View {
} }
// MARK: - // MARK: -
extension SettingsAccountView {
// //
struct AccountRow: View { private struct AccountRow: View {
let icon: String let icon: String
let title: String let title: String
let subtitle: String let subtitle: String
@ -97,7 +95,7 @@ extension SettingsAccountView {
} }
} }
struct AccountCreditView: View { private struct AccountCreditView: View {
@Environment(AppContext.self) var appContext: AppContext @Environment(AppContext.self) var appContext: AppContext
@Environment(\.openWindow) var openWindow @Environment(\.openWindow) var openWindow
@Environment(\.dismissWindow) var dismissWindow @Environment(\.dismissWindow) var dismissWindow
@ -128,7 +126,7 @@ extension SettingsAccountView {
} }
} }
struct TokenCreditView: View { private struct TokenCreditView: View {
@Environment(AppContext.self) var appContext: AppContext @Environment(AppContext.self) var appContext: AppContext
@Environment(\.openWindow) var openWindow @Environment(\.openWindow) var openWindow
@Environment(\.dismissWindow) var dismissWindow @Environment(\.dismissWindow) var dismissWindow
@ -151,5 +149,3 @@ extension SettingsAccountView {
)) ))
} }
} }
}

View File

@ -96,7 +96,7 @@ struct SettingsDeviceView: View {
} }
// MARK: - // MARK: -
struct DevicePropertyRow<Content: View>: View { private struct DevicePropertyRow<Content: View>: View {
let title: String let title: String
let value: String let value: String
let trailingContent: () -> Content let trailingContent: () -> Content

View File

@ -133,7 +133,7 @@ struct SettingsNetworkView: View {
} }
struct StatusRow: View { private struct StatusRow: View {
let title: String let title: String
let value: String let value: String
let valueColor: Color let valueColor: Color

View File

@ -92,7 +92,7 @@ struct SettingsSystemView: View {
} }
// MARK: - // MARK: -
struct ToggleRow: View { private struct ToggleRow: View {
let icon: String let icon: String
let title: String let title: String
@Binding var isOn: Bool @Binding var isOn: Bool

View File

@ -122,7 +122,35 @@ struct SettingsUserIssueView: View {
} }
} }
// MARK: - // MARK: -
private var successPopup: some View {
VStack(spacing: 16) {
Image(systemName: "checkmark.seal.fill")
.font(.system(size: 44))
.foregroundStyle(.green.gradient)
Text("发送成功")
.font(.headline)
Text("感谢您的支持!")
.font(.subheadline)
.foregroundColor(.secondary)
}
.padding(40)
.background(.ultraThinMaterial) // macOS
.cornerRadius(24)
.shadow(color: .black.opacity(0.15), radius: 20)
.transition(.asymmetric(
insertion: .scale(scale: 0.8).combined(with: .opacity),
removal: .opacity.combined(with: .scale(scale: 1.1))
))
}
}
// MARK: Actions
extension SettingsUserIssueView {
private func submitFeedback() async { private func submitFeedback() async {
withAnimation { withAnimation {
isSubmitting = true isSubmitting = true
@ -157,27 +185,4 @@ struct SettingsUserIssueView: View {
self.isSubmitting = false self.isSubmitting = false
} }
// MARK: -
private var successPopup: some View {
VStack(spacing: 16) {
Image(systemName: "checkmark.seal.fill")
.font(.system(size: 44))
.foregroundStyle(.green.gradient)
Text("发送成功")
.font(.headline)
Text("感谢您的支持!")
.font(.subheadline)
.foregroundColor(.secondary)
}
.padding(40)
.background(.ultraThinMaterial) // macOS
.cornerRadius(24)
.shadow(color: .black.opacity(0.15), radius: 20)
.transition(.asymmetric(
insertion: .scale(scale: 0.8).combined(with: .opacity),
removal: .opacity.combined(with: .scale(scale: 1.1))
))
}
} }

View File

@ -111,7 +111,7 @@ struct SettingsView: View {
} }
// MARK: - // MARK: -
struct SidebarItem: View { private struct SidebarItem: View {
let icon: String let icon: String
let title: String let title: String
let isSelected: Bool let isSelected: Bool

View File

@ -43,7 +43,8 @@ class AppUpdateManager {
} }
} }
struct VersionComparator { private struct VersionComparator {
/// current < latest true () /// current < latest true ()
static func isVersion(_ current: String, olderThan latest: String) -> Bool { static func isVersion(_ current: String, olderThan latest: String) -> Bool {
let currentComponents = current.split(separator: ".").map { Int($0) ?? 0 } let currentComponents = current.split(separator: ".").map { Int($0) ?? 0 }