fix(widget): le total retombait à zéro après synchronisation
Le widget affiche « snapshot + file d'attente ». La synchronisation vidait la file sans créditer le snapshot : le total repassait donc à zéro juste après que la saisie ait été enregistrée pour de bon. Le pire moment pour douter de son journal. `flush()` reporte désormais dans le snapshot ce qu'il vient d'envoyer, AVANT de vider la file. Seules les entrées du jour sont créditées — le snapshot porte des totaux quotidiens, y verser une saisie d'hier les fausserait. Le pont web repoussera un snapshot exact au prochain chargement de page ; ce report garde l'affichage juste entre-temps. Les optionnels du snapshot reçoivent `= nil` explicitement : sans valeur par défaut, l'init memberwise de Swift les aurait exigés à l'appel. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -41,8 +41,8 @@ enum CoachWidgetStore {
|
||||
/// le widget n'a pas d'accès réseau, tout vient de ce snapshot poussé par l'app.
|
||||
struct CoachWidgetSnapshot: Codable {
|
||||
var updatedAt: Date
|
||||
var today: TodaySession?
|
||||
var forme: FormeScore?
|
||||
var today: TodaySession? = nil
|
||||
var forme: FormeScore? = nil
|
||||
|
||||
/// Boissons du jour DÉJÀ connues du serveur, en millilitres et en nombre de
|
||||
/// cafés. Le widget de saisie rapide y ajoute ce qui attend encore dans la
|
||||
@@ -50,14 +50,14 @@ struct CoachWidgetSnapshot: Codable {
|
||||
/// « 1,5 L » tant que l'app n'a pas resynchronisé, et l'utilisateur
|
||||
/// douterait de saisies pourtant enregistrées.
|
||||
/// Optionnels : un snapshot écrit par une version antérieure reste lisible.
|
||||
var waterMlToday: Double?
|
||||
var coffeeCountToday: Int?
|
||||
var waterMlToday: Double? = nil
|
||||
var coffeeCountToday: Int? = nil
|
||||
|
||||
/// Énergie du jour et objectif, poussés par l'app depuis le journal.
|
||||
/// `kcalGoal` vient des objectifs nutritionnels réels (1950 au 06/08/2026) :
|
||||
/// il n'est pas écrit en dur ici, pour qu'un changement d'objectif suive.
|
||||
var kcalToday: Double?
|
||||
var kcalGoal: Double?
|
||||
var kcalToday: Double? = nil
|
||||
var kcalGoal: Double? = nil
|
||||
|
||||
|
||||
/// Séance planifiée du jour (nil = jour OFF / pas de séance).
|
||||
|
||||
Reference in New Issue
Block a user