feat(apple): transfer controls, progress fixes, and project config

- Sender progress: aggregate only in-flight receivers so the bar clears on
  completion and is order-independent ("Sending to N")
- Add Stop sharing and per-receiver Refuse (pending requests) on the sender
- Fix macOS: raise approval modal above the Share sheet; drive foreground
  state off NSApplication so background notifications fire
- Persist app identity (display name, category) and signing team via
  Info.plist / project.yml / gitignored Local.xcconfig
This commit is contained in:
2026-07-19 12:33:58 +02:00
parent ea376a382b
commit ceccfcda71
11 changed files with 278 additions and 68 deletions

View File

@@ -33,11 +33,13 @@ struct ProgressRow: View {
let labelKey: String
let progress: Double?
var detail: String? = nil
/// Pre-resolved label; when set it overrides `labelKey`.
var labelText: String? = nil
var body: some View {
VStack(alignment: .leading, spacing: 4) {
HStack {
Text(LocalizedStringKey(labelKey)).font(.subheadline).lineLimit(1)
label.font(.subheadline).lineLimit(1)
Spacer()
if let progress {
Text("\(Int(progress * 100))%").font(.caption).foregroundStyle(.secondary)
@@ -54,6 +56,15 @@ struct ProgressRow: View {
}
.frame(maxWidth: .infinity)
}
@ViewBuilder
private var label: some View {
if let labelText {
Text(labelText)
} else {
Text(LocalizedStringKey(labelKey))
}
}
}
// MARK: - Field