diff --git a/frontend/index.html b/frontend/index.html index b0abe1d..a4ae7b8 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -1,13 +1,16 @@ - - - - - - xeewy.be - - -
- - - + + + + + + + xeewy.be + + + +
+ + + + \ No newline at end of file diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a63649b..9550e25 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,5 +1,5 @@ import { useState, useEffect } from 'react'; -import { BrowserRouter, Routes, Route, Navigate, useParams } from 'react-router-dom'; +import { BrowserRouter, Routes, Route, useParams } from 'react-router-dom'; import { LanguageProvider } from './contexts/LanguageContext'; import Header from './components/Header'; import Home from './components/Home'; @@ -10,19 +10,24 @@ import EraseData from './components/TravelMate/EraseData'; import Support from './components/TravelMate/Support'; import HomeSync from './components/HomeSync'; import ScrollToTop from './components/ScrollToTop'; +import RootRedirect from './components/RootRedirect'; import './styles/main.scss'; +import { CookieProvider, useCookie } from './contexts/CookieContext'; +import CookieBanner from './components/CookieBanner/CookieBanner'; function App() { return ( - - } /> - - - - } /> - + + + } /> + + + + } /> + + ); } @@ -36,6 +41,8 @@ function AppContent() { // Optional: Check if useParamsLang.lang is valid, else redirect }, [useParamsLang]); + const { consent } = useCookie(); + useEffect(() => { const savedTheme = localStorage.getItem('darkMode'); if (savedTheme) { @@ -46,9 +53,12 @@ function AppContent() { }, []); useEffect(() => { - localStorage.setItem('darkMode', JSON.stringify(darkMode)); + // Only save if preferences are allowed + if (consent.preferences || consent.essential) { + localStorage.setItem('darkMode', JSON.stringify(darkMode)); + } document.documentElement.setAttribute('data-theme', darkMode ? 'dark' : 'light'); - }, [darkMode]); + }, [darkMode, consent]); const toggleDarkMode = () => { setDarkMode(!darkMode); @@ -71,6 +81,7 @@ function AppContent() {