Bilan : ne se redessine que si ce qu'il montre change ; le test attend son mini-plateau

Les analyses de l'ordinateur et les chances de gagner, rangées en
arrière-plan pour l'écran d'analyse, redessinaient tout le bilan, et son
mini-plateau disparaissait le temps d'être redessiné.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-10 16:03:01 +01:00
co-authored by Claude Opus 5.5
parent f2417097f9
commit 9f72b6212f
2 changed files with 19 additions and 2 deletions
+17 -2
View File
@@ -13,7 +13,6 @@
import {
type GameSummary,
missingAnalyses,
readyForSummary,
summarizeAnalysis,
} from "../domain/analysis/game-analysis.js";
@@ -112,15 +111,31 @@ export function createSummaryView(options: SummaryViewOptions): SummaryView {
function render(data: SummaryData | null): void {
const ready = data !== null && data.phrases !== null && readyForSummary(data.journal);
const summary = ready ? summarizeAnalysis(data.journal) : null;
// Seulement ce que le bilan montre : les analyses qui arrivent
// ensuite en arrière-plan pour l'écran d'analyse (coups de
// l'ordinateur, chances de gagner) ne le redessinent pas, sinon le
// panneau et son mini-plateau sauteraient sous les yeux du joueur.
const shown =
summary === null || data === null || data.phrases === null
? null
: {
counts: summary.counts,
level: summary.player.errorRate.level,
dice: summary.player.luck.rating,
reading: summaryReading(data.phrases, summary),
toReview: summary.toReview?.advice.eventId ?? null,
turn: summary.toReview?.turn ?? null,
};
const key =
data === null
? "missing"
: [
data.id,
data.end?.title ?? "",
data.end?.detail ?? "",
data.afterLabel ?? "",
ready,
ready ? JSON.stringify(summary) : missingAnalyses(data.journal).length,
JSON.stringify(shown),
].join("|");
if (key === drawn) {
return;