71 lines
1.6 KiB
Swift
71 lines
1.6 KiB
Swift
import SwiftUI
|
|
|
|
// swiftlint:disable closure_body_length
|
|
|
|
struct DevMenuAppInfo: View {
|
|
@EnvironmentObject var viewModel: DevMenuViewModel
|
|
|
|
var body: some View {
|
|
VStack(alignment: .leading) {
|
|
Text("SYSTEM")
|
|
.font(.caption)
|
|
.foregroundColor(.primary.opacity(0.6))
|
|
|
|
VStack(spacing: 0) {
|
|
Divider()
|
|
|
|
InfoRow(title: "Version", value: viewModel.appInfo?.appVersion ?? "Unknown")
|
|
|
|
if let runtimeVersion = viewModel.appInfo?.runtimeVersion {
|
|
Divider()
|
|
InfoRow(title: "Runtime version", value: runtimeVersion)
|
|
} else if let sdkVersion = viewModel.appInfo?.sdkVersion {
|
|
Divider()
|
|
InfoRow(title: "SDK Version", value: sdkVersion)
|
|
}
|
|
|
|
Divider()
|
|
|
|
Button {
|
|
viewModel.copyAppInfo()
|
|
}
|
|
label: {
|
|
HStack {
|
|
Text(viewModel.clipboardMessage ?? "Copy system info")
|
|
.foregroundColor(.blue)
|
|
Spacer()
|
|
Image(systemName: "document.on.clipboard")
|
|
.resizable()
|
|
.frame(width: 16, height: 16)
|
|
.opacity(0.6)
|
|
}
|
|
.padding(.vertical)
|
|
.disabled(viewModel.clipboardMessage != nil)
|
|
}
|
|
}
|
|
.background(Color.expoSystemBackground)
|
|
.cornerRadius(18)
|
|
}
|
|
}
|
|
}
|
|
|
|
struct InfoRow: View {
|
|
let title: String
|
|
let value: String
|
|
|
|
var body: some View {
|
|
HStack {
|
|
Text(title)
|
|
.foregroundColor(.primary)
|
|
|
|
Spacer()
|
|
|
|
Text(value)
|
|
.foregroundColor(.primary)
|
|
.lineLimit(2)
|
|
}
|
|
.padding(.vertical)
|
|
}
|
|
}
|
|
// swiftlint:enable closure_body_length
|