More info sheet: the copy confirmation reads "Postcode copied"
The capsule label was just "Copied", which reads oddly above a row whose hint is "Copies the postcode". It is now "Postcode copied". Still centred over the address row (centre x 603 of a 1206 px screen) and still a pure overlay: the bands above and below the capsule are pixel-identical while it is up (no reflow), and the row stays tappable straight through it. The "Copied" localisation key goes with its only use; "Postcode copied" replaces it.
This commit is contained in:
@@ -29,7 +29,7 @@ struct StationDetailView: View {
|
|||||||
var onToggleFavourite: (() -> Void)? = nil
|
var onToggleFavourite: (() -> Void)? = nil
|
||||||
@Environment(\.dismiss) private var dismiss
|
@Environment(\.dismiss) private var dismiss
|
||||||
@State private var showingReportIssueConfirmation = false
|
@State private var showingReportIssueConfirmation = false
|
||||||
/// Transient "Copied" confirmation on the Address row. Cleared by a task so
|
/// Transient "Postcode copied" confirmation on the Address row. Cleared by a task so
|
||||||
/// the caption fades out on its own.
|
/// the caption fades out on its own.
|
||||||
@State private var showingCopied = false
|
@State private var showingCopied = false
|
||||||
@State private var copyResetTask: Task<Void, Never>?
|
@State private var copyResetTask: Task<Void, Never>?
|
||||||
@@ -137,7 +137,7 @@ struct StationDetailView: View {
|
|||||||
// The whole row is a copy control: it puts JUST the postcode
|
// The whole row is a copy control: it puts JUST the postcode
|
||||||
// on the clipboard so it can be pasted into another
|
// on the clipboard so it can be pasted into another
|
||||||
// navigation app. The copy glyph sits ON the address line,
|
// navigation app. The copy glyph sits ON the address line,
|
||||||
// and the "Copied" confirmation is a capsule that floats OVER
|
// and the "Postcode copied" confirmation is a capsule that floats OVER
|
||||||
// THIS ROW — it confirms the address, so it must not hover
|
// THIS ROW — it confirms the address, so it must not hover
|
||||||
// over the map. It is an overlay, so nothing moves while it is
|
// over the map. It is an overlay, so nothing moves while it is
|
||||||
// up, and `allowsHitTesting(false)` keeps the row tappable
|
// up, and `allowsHitTesting(false)` keeps the row tappable
|
||||||
@@ -172,7 +172,7 @@ struct StationDetailView: View {
|
|||||||
if showingCopied {
|
if showingCopied {
|
||||||
HStack(spacing: 4) {
|
HStack(spacing: 4) {
|
||||||
Image(systemName: "checkmark")
|
Image(systemName: "checkmark")
|
||||||
Text("Copied")
|
Text("Postcode copied")
|
||||||
}
|
}
|
||||||
.font(.footnote.weight(.semibold))
|
.font(.footnote.weight(.semibold))
|
||||||
.foregroundStyle(.green)
|
.foregroundStyle(.green)
|
||||||
@@ -296,12 +296,12 @@ struct StationDetailView: View {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// The "Copied" fade-out task must not outlive the sheet.
|
// The "Postcode copied" fade-out task must not outlive the sheet.
|
||||||
.onDisappear { copyResetTask?.cancel() }
|
.onDisappear { copyResetTask?.cancel() }
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
// QA hook: `-qaCopyPostcode` runs the REAL copy on open, so the
|
// QA hook: `-qaCopyPostcode` runs the REAL copy on open, so the
|
||||||
// clipboard value (read back with `xcrun simctl pbpaste`) and the
|
// clipboard value (read back with `xcrun simctl pbpaste`) and the
|
||||||
// "Copied" confirmation can be verified without a tap — simctl
|
// "Postcode copied" confirmation can be verified without a tap — simctl
|
||||||
// cannot drive taps into the Simulator.
|
// cannot drive taps into the Simulator.
|
||||||
.task {
|
.task {
|
||||||
guard ProcessInfo.processInfo.arguments.contains("-qaCopyPostcode") else { return }
|
guard ProcessInfo.processInfo.arguments.contains("-qaCopyPostcode") else { return }
|
||||||
|
|||||||
@@ -71,8 +71,8 @@
|
|||||||
"Name" = "Name";
|
"Name" = "Name";
|
||||||
"Address" = "Address";
|
"Address" = "Address";
|
||||||
"Distance" = "Distance";
|
"Distance" = "Distance";
|
||||||
"Copied" = "Copied";
|
|
||||||
"Copies the postcode" = "Copies the postcode";
|
"Copies the postcode" = "Copies the postcode";
|
||||||
|
"Postcode copied" = "Postcode copied";
|
||||||
"Address: %@" = "Address: %@";
|
"Address: %@" = "Address: %@";
|
||||||
"Directions to %@" = "Directions to %@";
|
"Directions to %@" = "Directions to %@";
|
||||||
"Opens Apple Maps with driving directions" = "Opens Apple Maps with driving directions";
|
"Opens Apple Maps with driving directions" = "Opens Apple Maps with driving directions";
|
||||||
|
|||||||
Reference in New Issue
Block a user