Initial commit for first version of project

This commit is contained in:
Dennis Nemec
2026-09-02 20:54:36 +02:00
parent 3d9f1ab6bc
commit 992bb32025
56 changed files with 5139 additions and 31 deletions

View File

@ -0,0 +1,59 @@
//
// MeasurementListView.swift
// GasTankAR
//
// Created by Dennis Nemec on 28.08.26.
//
import SwiftUI
/// Von unten einschwebendes Sheet mit den angelegten Strecken. Ist keine vorhanden,
/// wird zum Hinzufügen aufgefordert.
struct MeasurementListView: View {
let controller: ARSessionController
/// Startet einen neuen Messvorgang (schließt das Sheet und lässt den Nutzer zwei Punkte wählen).
let onAddStrecke: () -> Void
var body: some View {
NavigationStack {
Group {
if controller.measurements.isEmpty {
ContentUnavailableView {
Label("Keine Strecken", systemImage: "ruler")
} description: {
Text("Füge eine Strecke hinzu und wähle dafür zwei Punkte im Raum.")
} actions: {
Button("Strecke hinzufügen", systemImage: "plus", action: onAddStrecke)
.buttonStyle(.borderedProminent)
}
} else {
List {
ForEach(controller.measurements) { measurement in
HStack {
VStack(alignment: .leading, spacing: 2) {
Text(measurement.name)
.font(.headline)
Text(measurement.formattedDistance)
.font(.subheadline)
.foregroundStyle(.secondary)
}
Spacer()
Image(systemName: "ruler")
.foregroundStyle(.secondary)
}
}
.onDelete { controller.deleteMeasurements(at: $0) }
}
}
}
.navigationTitle("Strecken")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
Button("Hinzufügen", systemImage: "plus", action: onAddStrecke)
}
}
}
.presentationDetents([.medium, .large])
}
}