59 lines
1.6 KiB
Swift
59 lines
1.6 KiB
Swift
//
|
|
// DrinkDetailView.swift
|
|
// meterios-watch
|
|
//
|
|
// (c) 2025 Martin "maride" Dessauer
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct DrinkDetailView: View {
|
|
private var wcMgr: WCManager
|
|
private var drink: Drink
|
|
|
|
@State var shouldShowTransactionSheet = false
|
|
|
|
@Environment(\.dismiss) private var dismiss
|
|
|
|
init(wcMgr: WCManager, drink: Drink) {
|
|
self.wcMgr = wcMgr
|
|
self.drink = drink
|
|
}
|
|
|
|
var body: some View {
|
|
VStack {
|
|
// Title
|
|
Text(drink.name).font(.title)
|
|
|
|
// Basic info
|
|
HStack {
|
|
VStack {
|
|
Text(String(format: "%img", drink.caffeine)).fontWeight(.bold)
|
|
Text("Caffeine").fontWeight(Font.Weight.thin)
|
|
}
|
|
Divider()
|
|
VStack {
|
|
Text(String(format: "%.2f€", drink.GetPrice())).fontWeight(.bold)
|
|
Text("Price").fontWeight(Font.Weight.thin)
|
|
}
|
|
}
|
|
|
|
// Pick button
|
|
Button(action: {
|
|
// Open the transaction sheet
|
|
shouldShowTransactionSheet = true
|
|
}) {
|
|
Text("Poison picked!")
|
|
}.tint(.green)
|
|
}
|
|
|
|
// Transaction sheet
|
|
.sheet(isPresented: $shouldShowTransactionSheet) {
|
|
// Sheet dismissed - dismiss detail perspective as well.
|
|
dismiss()
|
|
} content: {
|
|
TransactionView(wcMgr: wcMgr, drinkID: drink.id).interactiveDismissDisabled()
|
|
}
|
|
}
|
|
}
|