chore: address code quality audit findings
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled

This commit is contained in:
Tom Boullay
2026-05-28 08:31:42 +02:00
parent 947025cbf5
commit d654565f87
73 changed files with 890 additions and 1457 deletions
+1 -28
View File
@@ -2,10 +2,7 @@ import { useEffect } from "react";
import { RotateCcw, X } from "lucide-react";
import { useGameStore } from "@/managers/stores/useGameStore";
import { useSettingsStore } from "@/managers/stores/useSettingsStore";
import type {
RepairRuntime,
SubtitleLanguage,
} from "@/managers/stores/useSettingsStore";
import type { SubtitleLanguage } from "@/types/settings/settings";
import { isDebugEnabled } from "@/utils/debug/isDebugEnabled";
function formatPercent(value: number): string {
@@ -62,14 +59,12 @@ export function GameSettingsMenu(): React.JSX.Element | null {
dialogueVolume,
subtitlesEnabled,
subtitleLanguage,
repairRuntime,
setMusicVolume,
setSfxVolume,
setDialogueVolume,
setSettingsMenuOpen,
setSubtitlesEnabled,
setSubtitleLanguage,
setRepairRuntime,
} = useSettingsStore();
useEffect(() => {
@@ -178,28 +173,6 @@ export function GameSettingsMenu(): React.JSX.Element | null {
</div>
</section>
<section
className="game-settings-menu__section"
aria-labelledby="repair-settings-heading"
>
<h3 id="repair-settings-heading">Repair game</h3>
<div className="game-settings-menu__choice-group game-settings-menu__choice-group--stacked">
{(["js", "python"] satisfies RepairRuntime[]).map((runtime) => (
<button
key={runtime}
type="button"
className={repairRuntime === runtime ? "active" : undefined}
onClick={() => setRepairRuntime(runtime)}
aria-pressed={repairRuntime === runtime}
>
{runtime === "js"
? "Repair game en JS (local)"
: "Repair game en Python (server)"}
</button>
))}
</div>
</section>
{showDebugRestart ? (
<button
className="game-settings-menu__restart"
+1 -1
View File
@@ -2,7 +2,7 @@ import { useSettingsStore } from "@/managers/stores/useSettingsStore";
import { useSubtitleStore } from "@/managers/stores/useSubtitleStore";
import type { DialogueSpeaker } from "@/types/dialogues/dialogues";
export type SubtitleSpeaker = DialogueSpeaker;
type SubtitleSpeaker = DialogueSpeaker;
interface SubtitlesProps {
speaker?: SubtitleSpeaker | null;
+11 -15
View File
@@ -1,18 +1,12 @@
import { RotateCcw, StepBack, StepForward } from "lucide-react";
import {
type MainGameState,
useGameStore,
} from "@/managers/stores/useGameStore";
import { useGameStore } from "@/managers/stores/useGameStore";
import { isMissionStep, MISSION_STEPS } from "@/types/gameplay/repairMission";
import { GAME_STEPS, type GameStep } from "@/types/game";
const MAIN_STATES: MainGameState[] = [
"intro",
"bike",
"pylone",
"ferme",
"outro",
];
import {
GAME_STEPS,
isGameStep,
MAIN_GAME_STATES,
type MainGameState,
} from "@/types/game";
function toPascalCase(value: string): string {
return value
@@ -60,7 +54,9 @@ export function GameStateDebugPanel(): React.JSX.Element {
function setSubState(nextSubState: string): void {
if (mainState === "intro") {
setIntroStep(nextSubState as GameStep);
if (isGameStep(nextSubState)) {
setIntroStep(nextSubState);
}
return;
}
@@ -124,7 +120,7 @@ export function GameStateDebugPanel(): React.JSX.Element {
aria-label="Main states"
role="group"
>
{MAIN_STATES.map((state) => (
{MAIN_GAME_STATES.map((state) => (
<button
key={state}
aria-pressed={state === mainState}