import SwiftUI struct SettingsView: View { @EnvironmentObject private var model: AppModel @Environment(\.dismiss) private var dismiss private let currencies = ["USD", "MYR", "JPY"] var body: some View { ScrollView { VStack(alignment: .leading, spacing: 18) { ScreenHeader(title: "Settings", subtitle: "Security and device options", onBack: { dismiss() }) Card { VStack(alignment: .leading, spacing: 10) { Text("Currency") .font(.system(size: 13, weight: .semibold)) .foregroundStyle(Theme.muted) LazyVGrid(columns: [GridItem(.adaptive(minimum: 64), spacing: 8)], spacing: 8) { ForEach(currencies, id: \.self) { currency in let selected = model.fiatCurrency == currency Button { model.fiatCurrency = currency } label: { Text(currency) .font(.system(size: 13, weight: .medium)) .frame(maxWidth: .infinity) .padding(.vertical, 8) .background(selected ? Theme.accent : Theme.surfaceAlt) .foregroundStyle(selected ? Color.black : Theme.text) .clipShape(RoundedRectangle(cornerRadius: 10, style: .continuous)) } } } Text("Prices come from CoinGecko (with a Kraken fallback for USD and EUR) and refresh about once a minute.") .font(.system(size: 11)) .foregroundStyle(Theme.muted) .padding(.top, 4) } } Card { Toggle(isOn: Binding(get: { model.faceIDEnabled }, set: { model.faceIDEnabled = $0 })) { VStack(alignment: .leading, spacing: 3) { Text("Unlock with \(Biometrics.label)") .font(.system(size: 15, weight: .semibold)) .foregroundStyle(Theme.text) Text("Require \(Biometrics.label) to open the app, reveal the recovery phrase, and send payments.") .font(.system(size: 11)) .foregroundStyle(Theme.muted) } } .tint(Theme.accent) .disabled(!Biometrics.isAvailable) if !Biometrics.isAvailable { Text("This device has no biometric sensor configured.") .font(.system(size: 11)) .foregroundStyle(Theme.muted) } } Spacer(minLength: 0) } .padding(.horizontal, 20) .padding(.top, 12) } .preferredColorScheme(.dark) } }