Reduced-motion default is frozen at the first settings write

Ouverte Adaptée aux débutants
#15 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
82/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
typescript
Domaine
backend

Piste de recherche

Commencez par shared/settings.ts, en particulier defaults() et updateSettings(), puis suivez la façon dont getSettings() lit les valeurs enregistrées. Conservez la préférence du système d’exploitation en vigueur jusqu’à ce que le joueur définisse explicitement la réduction des animations ; vérifiez avec npm run typecheck et npm run build. Le travail est terminé lorsque l’arcade suit les changements ultérieurs de la préférence du système d’exploitation jusqu’à ce que l’option soit explicitement remplacée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug severity: low

Summary

The reduced-motion default follows the OS preference, but the first settings change of any kind saves the resolved value permanently. Later OS changes are ignored.

Where

  • shared/settings.ts:55-59 (defaults() reads prefers-reduced-motion)
  • shared/settings.ts:66-68 (updateSettings saves the whole merged object)

Steps to reproduce

  1. With OS reduced motion off, press M in any game.
  2. Turn OS reduced motion on and reload: shake and flash still play.

Suggested fix

Persist only explicit overrides: keep reducedMotion as boolean | undefined in storage and resolve it in getSettings().

Acceptance criteria

  • Until the player sets the option explicitly, the arcade follows the OS preference

Getting started

  • Relevant files: shared/settings.ts
  • Run locally: npm install, then npm run dev
  • Checks: npm run typecheck and npm run build (there is no test suite yet)
  • Related docs: README.md

Filed by repo-audit/full-audit at b001f5d. Severity: low. Effort: S. audit-key: bug|shared/settings.ts|updateSettings

Langage dominant
TypeScript
Étoiles
3
Forks
3
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de TMHSDigital/GH-Arcade

Toutes les issues de TMHSDigital/GH-Arcade

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.