Accueil, tutoriel, aide en questions, installation et mise à jour de l'application

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-09 15:17:49 +01:00
co-authored by Claude Opus 5.5
parent 3f5b00133d
commit 441bca1bd7
37 changed files with 3518 additions and 130 deletions
+15 -4
View File
@@ -10,9 +10,14 @@
//
// Mise à jour : à chaque publication, VERSION change, donc ce fichier. Le
// navigateur installe alors la nouvelle version, qui télécharge tout dans un
// nouveau cache, prend la main tout de suite et efface l'ancien cache. La
// page déjà ouverte a chargé tous ses fichiers au démarrage : elle continue
// sans rien remarquer, et le prochain lancement utilise la nouvelle version.
// nouveau cache, puis attend : la version en place garde la main, et son
// cache, tant que le joueur n'a pas accepté la mise à jour. Une page ouverte
// continue donc de trouver tous ses fichiers. L'application affiche le
// bandeau « Nouvelle version disponible » (app/src/ui/updates.ts) ; « Mettre
// à jour » envoie le message « skip-waiting » : la nouvelle version prend
// la main, efface l'ancien cache, et la page se recharge. À la toute
// première installation, aucune version n'est en place : elle prend la main
// sans attendre.
/* global VERSION, FILES */
@@ -25,11 +30,17 @@ self.addEventListener("install", (event) => {
// no-cache : revalider auprès du serveur, jamais une copie
// périmée du cache HTTP du navigateur.
await cache.addAll(FILES.map((file) => new Request(file, { cache: "no-cache" })));
await self.skipWaiting();
})(),
);
});
// L'accord du joueur (même nom que SKIP_WAITING dans updates.ts).
self.addEventListener("message", (event) => {
if (event.data?.type === "skip-waiting") {
void self.skipWaiting();
}
});
self.addEventListener("activate", (event) => {
event.waitUntil(
(async () => {