Add a reusable Important information disclaimer sheet
One sheet, reachable from the bottom of the Key sheet and from the bottom of Settings, with each topic as its own card and heading: - Fuel Prices, Fuel Availability, Savings & Best Value, Journey Estimates, Before You Travel and Disclaimer, in that order. - Every heading carries an SF Symbol in a fixed-width, Dynamic-Type-aware slot, so heading text lines up across sections regardless of glyph width. Icons take the accent colour, headings are semibold and primary, and each description sits beneath its heading in secondary text. - All copy lives in en.lproj/Localizable.strings keyed by the English literal, ready for the web copy editor. - The sheet, its trigger row and the .importantInformationSheet(isPresented:) modifier live in one file, so any further entry point is a one-line change and the wording cannot drift between them. - DEBUG-only `-showImportantInfo` launch hook, chained behind the Key sheet, for screenshotting without a tap.
This commit is contained in:
@@ -82,6 +82,9 @@ struct SettingsView: View {
|
||||
@State private var fillUpDraft: Double?
|
||||
@State private var versionTapCount = 0
|
||||
@State private var lastVersionTap = Date.distantPast
|
||||
/// The shared "Important information" disclaimer sheet, opened from the row
|
||||
/// at the bottom of the tab.
|
||||
@State private var showImportantInformation = false
|
||||
/// Widget diagnostics: the extension's last makeEntry beacon PER intent
|
||||
/// type (keychain) + the installed-widget inventory from WidgetCenter.
|
||||
@State private var smallWidgetDiag: String?
|
||||
@@ -607,11 +610,16 @@ struct SettingsView: View {
|
||||
Text("About")
|
||||
}
|
||||
|
||||
Section {
|
||||
ImportantInformationRow { showImportantInformation = true }
|
||||
}
|
||||
|
||||
}
|
||||
// Numeric entry must be escapable: `.decimalPad` has no Return key.
|
||||
.keyboardDoneButton { focusedSavingsField = nil }
|
||||
.scrollDismissesKeyboard(.interactively)
|
||||
.navigationTitle("Settings")
|
||||
.importantInformationSheet(isPresented: $showImportantInformation)
|
||||
.onAppear {
|
||||
Task { await tipStore.load() }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user