fix(ios): robustesse bridge widget + Apple Sign-In
- CoachWidgetBridge : lit le score en NSNumber.intValue (le cast `as? Int` renvoyait nil quand le web envoie un float → score widget perdu par intermittence). CoachWidgetStore.save renvoie un Bool ; le plugin fait call.reject si la sauvegarde échoue au lieu de résoudre ok:true à tort. - CoachAppleAuth : sur double-tap, rejette l'ancien pendingCall (Promise JS ne pend plus indéfiniment) ; accès pendingCall confiné au main thread ; erreur d'annulation testée par domaine ASAuthorizationError (pas rawValue nu). Swift pur, non compilé ici (pas de Xcode) — à valider au prochain build Mac. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -18,9 +18,13 @@ enum CoachWidgetStore {
|
||||
|
||||
static var defaults: UserDefaults? { UserDefaults(suiteName: appGroup) }
|
||||
|
||||
static func save(_ snapshot: CoachWidgetSnapshot) {
|
||||
guard let d = defaults, let data = try? JSONEncoder().encode(snapshot) else { return }
|
||||
/// Renvoie `false` si l'App Group est indisponible ou l'encodage échoue —
|
||||
/// permet à l'appelant (bridge) de signaler l'échec au lieu de mentir « ok ».
|
||||
@discardableResult
|
||||
static func save(_ snapshot: CoachWidgetSnapshot) -> Bool {
|
||||
guard let d = defaults, let data = try? JSONEncoder().encode(snapshot) else { return false }
|
||||
d.set(data, forKey: snapshotKey)
|
||||
return true
|
||||
}
|
||||
|
||||
static func load() -> CoachWidgetSnapshot? {
|
||||
|
||||
Reference in New Issue
Block a user