79 lines
2.6 KiB
Swift
79 lines
2.6 KiB
Swift
//
|
||
// VehicleDetailView.swift
|
||
// AutoCat2SUI
|
||
//
|
||
// Created by Selim Mustafaev on 11.09.2022.
|
||
//
|
||
|
||
import SwiftUI
|
||
import AutoCatCore
|
||
|
||
struct ReportTextItem: View {
|
||
|
||
let name: String
|
||
let value: String?
|
||
|
||
var body: some View {
|
||
HStack {
|
||
Text(name)
|
||
Spacer()
|
||
Text(value ?? "")
|
||
.foregroundColor(.secondary)
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
struct VehicleDetailView: View {
|
||
|
||
let vehicle: Vehicle
|
||
|
||
var body: some View {
|
||
Form {
|
||
Section(header: Text("General")) {
|
||
ReportTextItem(name: "Year", value: String(vehicle.year ?? 0))
|
||
ReportTextItem(name: "Color", value: vehicle.color)
|
||
ReportTextItem(name: "Category", value: vehicle.category)
|
||
ReportTextItem(name: "Steering wheel position", value: vehicle.isRightWheel == true ? "Right": "Left")
|
||
ReportTextItem(name: "Japanese", value: vehicle.isJapanese == true ? "Yes" : "No")
|
||
}
|
||
Section(header: Text("Identifiers")) {
|
||
ReportTextItem(name: "Plate number", value: vehicle.number)
|
||
ReportTextItem(name: "VIN", value: vehicle.vin1)
|
||
ReportTextItem(name: "STS", value: vehicle.sts)
|
||
ReportTextItem(name: "PTS", value: vehicle.pts)
|
||
}
|
||
Section(header: Text("Engine")) {
|
||
ReportTextItem(name: "Number", value: vehicle.engine?.number)
|
||
ReportTextItem(name: "Fuel type", value: vehicle.engine?.fuelType)
|
||
ReportTextItem(name: "Volume (cm2)", value: String(vehicle.engine?.volume ?? 0))
|
||
ReportTextItem(name: "Power (HP)", value: String(vehicle.engine?.powerHp ?? 0))
|
||
ReportTextItem(name: "Power (kw)", value: String(vehicle.engine?.powerKw ?? 0))
|
||
}
|
||
}
|
||
.formStyle(.grouped)
|
||
.toolbar {
|
||
ToolbarItem(placement: .automatic) {
|
||
Button(action: {}) {
|
||
Image(systemName: "square.and.arrow.up")
|
||
}
|
||
}
|
||
}
|
||
.navigationTitle(vehicle.brand?.name?.original ?? "")
|
||
.navigationSubtitle("\(vehicle.year ?? 0)")
|
||
}
|
||
}
|
||
|
||
struct VehicleDetailView_Previews: PreviewProvider {
|
||
|
||
static var previews: some View {
|
||
|
||
let test1 = Vehicle(number: "Н282СН61",
|
||
brandName: "KIA ОПТИМА",
|
||
addedDate: Date().timeIntervalSince1970,
|
||
updatedDate: Date().timeIntervalSince1970)
|
||
|
||
return VehicleDetailView(vehicle: test1)
|
||
}
|
||
}
|