Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | 1x 1x 1x 1x 1x 1x 1x | import React from 'react';
import { HashRouter as Router, Routes, Route } from 'react-router-dom';
import { ShopProvider } from './context/ShopContext';
import { ToastProvider } from './context/ToastContext';
import { Header } from './components/Header';
import { Footer } from './components/Footer';
import Home from './pages/Home';
import Shop from './pages/Shop';
import ProductDetail from './pages/ProductDetail';
import Cart from './pages/Cart';
import Contact from './pages/Contact';
import Admin from './pages/Admin';
import { Section } from './components/Section';
// ScrollToTop component to reset scroll on route change
import { useEffect } from 'react';
import { useLocation } from 'react-router-dom';
const ScrollToTop = () => {
const { pathname } = useLocation();
useEffect(() => {
window.scrollTo(0, 0);
}, [pathname]);
return null;
};
const App: React.FC = () => {
return (
<ToastProvider>
<ShopProvider>
<Router>
<ScrollToTop />
<div className="flex flex-col min-h-screen">
<Header />
<main className="flex-grow">
<Routes>
<Route path="/" element={<Home />} />
<Route path="/kauppa" element={<Shop initialFilter="all" />} />
<Route path="/tarjoukset" element={<Shop initialFilter="offers" />} />
<Route path="/kaytetyt" element={<Shop initialFilter="used" />} />
<Route path="/tuote/:id" element={<ProductDetail />} />
<Route path="/kassa" element={<Cart />} />
<Route path="/yhteystiedot" element={<Contact />} />
<Route path="/admin" element={<Admin />} />
{/* Properly laid out legal page placeholders */}
<Route path="/toimitusehdot" element={
<Section variant="white" className="min-h-[50vh]">
<h1 className="text-3xl font-black mb-8">Toimitusehdot</h1>
<div className="prose prose-lg text-gray-600">
<p>Tähän tulisi verkkokaupan toimitusehdot. Koska tämä on demo, emme ole lisänneet pitkää lakitekstiä.</p>
<ul className="list-disc pl-5 mt-4 space-y-2">
<li>Toimitusaika 2-5 arkipäivää</li>
<li>Ilmainen palautus 14 vrk sisällä</li>
<li>Toimitus Postilla tai Matkahuollolla</li>
</ul>
</div>
</Section>
} />
<Route path="/tietosuojaseloste" element={
<Section variant="white" className="min-h-[50vh]">
<h1 className="text-3xl font-black mb-8">Tietosuojaseloste</h1>
<div className="prose prose-lg text-gray-600">
<p>Varjoliitokauppa kunnioittaa yksityisyyttäsi. Emme jaa tietojasi kolmansille osapuolille ilman lupaasi.</p>
<p className="mt-4">Rekisterinpitäjä: Varjoliitokauppa Oy<br/>Y-tunnus: 1234567-8</p>
</div>
</Section>
} />
</Routes>
</main>
<Footer />
</div>
</Router>
</ShopProvider>
</ToastProvider>
);
};
export default App;
|