diff --git a/app/components/AuthModal.tsx b/app/components/AuthModal.tsx index c941215..1f9f425 100644 --- a/app/components/AuthModal.tsx +++ b/app/components/AuthModal.tsx @@ -68,6 +68,14 @@ export function AuthModal({ onClose, onSuccess }: { onClose: () => void; onSucce + {mode === "register" && ( +
+ En créant un compte, vous acceptez notre{" "} + + politique de confidentialité + . +
+ )} diff --git a/app/components/BlitzScreen.tsx b/app/components/BlitzScreen.tsx index f018d37..d20c289 100644 --- a/app/components/BlitzScreen.tsx +++ b/app/components/BlitzScreen.tsx @@ -3,6 +3,7 @@ import { useBlitzGame } from "../../lib/useBlitzGame"; import { ArticleView } from "./ArticleView"; import { ShareBar } from "./ShareBar"; +import { useSearchAllowed } from "../../lib/useSearchAllowed"; function fmtLeft(s: number): string { const m = Math.floor(s / 60); @@ -12,6 +13,8 @@ function fmtLeft(s: number): string { export function BlitzScreen({ onBack }: { onBack: () => void }) { const game = useBlitzGame(); + const { allowed: searchAllowed, toggle: toggleSearch } = useSearchAllowed(); + const btnPrimary = "w-full min-h-11 rounded-xl text-sm font-semibold bg-[#7c3aed] text-white hover:bg-[#6d28d9] disabled:opacity-50 cursor-pointer transition-colors"; const btnGhost = "w-full min-h-11 rounded-xl text-sm font-semibold bg-[#242424] border border-[#2e2e2e] text-[#f0f0f0] hover:bg-[#1a1a1a] cursor-pointer transition-colors"; @@ -28,6 +31,15 @@ export function BlitzScreen({ onBack }: { onBack: () => void }) {Tu as 2 minutes{" "}pour naviguer de l'article de départ jusqu'à l'article cible en cliquant sur les liens Wikipedia. Plus tu es rapide, mieux c'est !
+ diff --git a/app/components/GameScreen.tsx b/app/components/GameScreen.tsx index 68e96d1..e34dfb0 100644 --- a/app/components/GameScreen.tsx +++ b/app/components/GameScreen.tsx @@ -117,7 +117,7 @@ export function GameScreen({Manche {room.round} terminée
} {isHost ? ( diff --git a/app/components/SoloScreen.tsx b/app/components/SoloScreen.tsx index c2ce350..2f7fb55 100644 --- a/app/components/SoloScreen.tsx +++ b/app/components/SoloScreen.tsx @@ -4,6 +4,7 @@ import { useEffect, useRef } from "react"; import { ArticleView } from "./ArticleView"; import { Breadcrumbs } from "./Breadcrumbs"; import { ShareBar } from "./ShareBar"; +import { useSearchAllowed } from "../../lib/useSearchAllowed"; import type { Puzzle } from "../../lib/types"; type SoloPhase = "setup" | "playing" | "won"; @@ -32,8 +33,10 @@ export function SoloScreen({ elapsedDisplay, canGoBack, onStart, onNavigate, onBack, onQuit, onNewGame, onRetry, }: SoloScreenProps) { const breadcrumbEndRef = useRefDeux articles aléatoires seront choisis. Atteins l'article cible en cliquant uniquement sur les liens !
+ diff --git a/app/privacy/page.tsx b/app/privacy/page.tsx index ceea493..5b96034 100644 --- a/app/privacy/page.tsx +++ b/app/privacy/page.tsx @@ -1,3 +1,5 @@ +import Link from "next/link"; + export const metadata = { title: "Politique de confidentialité - WikiRush", }; @@ -6,34 +8,71 @@ export default function PrivacyPage() { return (Dernière mise à jour : avril 2025
++ Dernière mise à jour : avril 2026 +
- WikiRush est un jeu de navigation Wikipedia jouable en solo et en multijoueur. - Cette politique explique quelles données sont collectées, pourquoi, et comment elles sont protégées. + WikiRush est un jeu de navigation Wikipedia jouable en solo et en + multijoueur. Cette politique explique quelles données sont + collectées, pourquoi, et comment elles sont protégées. +
++ Responsable du traitement :{" "} + DAVID Jessy{" "} + -{" "} + + contact@jessy-david.dev +
Lors de la création d'un compte, nous collectons :
Pour chaque partie jouée, nous enregistrons :
Les données collectées servent exclusivement à :
+Aucune donnée n'est vendue, partagée ou utilisée à des fins commerciales ou publicitaires.
-- Les données sont stockées dans une base SQLite hébergée localement sur le serveur de l'application. - Les mots de passe sont hachés avec bcrypt avant tout stockage. - Les sessions sont gérées via JWT (JSON Web Token) et ne contiennent pas d'informations sensibles. -
-- WikiRush n'utilise pas de cookies tiers, de trackers analytiques (Google Analytics, etc.) ni de réseaux publicitaires. - La session de connexion est stockée dans un cookie HTTP sécurisé et httpOnly, nécessaire au fonctionnement de l'authentification. -
-Vous pouvez à tout moment :
-+ Aucune donnée n'est vendue, partagée ou utilisée à des fins + commerciales ou publicitaires. +
+- Pour toute question relative à vos données personnelles, contactez-nous via la page GitHub du projet. + Les données sont stockées dans une base SQLite hébergée sur le + serveur de l'application. Les mots de passe sont hachés avec + bcrypt avant tout stockage. Les sessions sont gérées via JWT (JSON + Web Token) et ne contiennent pas d'informations sensibles.
+ WikiRush est hébergé par{" "} + + QuantumCraft Studios + {" "} + (58 Rue de Monceau, 75008 Paris). L'infrastructure de + déploiement peut faire appel à des prestataires établis hors UE. + Dans ce cas, les transferts sont encadrés par des clauses + contractuelles types (SCC) conformes au RGPD. +
++ WikiRush n'utilise pas de cookies tiers, de trackers + analytiques (Google Analytics, etc.) ni de réseaux publicitaires. + La session de connexion est stockée dans un cookie HTTP sécurisé + et httpOnly, nécessaire au fonctionnement de + l'authentification. +
+Conformément au RGPD, vous disposez des droits suivants :
++ Pour exercer ces droits :{" "} + + contact@jessy-david.dev + +
++ Vous pouvez également introduire une réclamation auprès de la{" "} + + CNIL + + . +
++ Pour toute question relative à vos données personnelles :{" "} + + contact@jessy-david.dev + +
+