diff --git a/frontend/src/App.css b/frontend/src/App.css index 984c6ab..335a6eb 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -15,7 +15,7 @@ body { font-family: "Roboto", sans-serif; - background-image: url("./assets/img/background.svg"); + background-image: url("./assets/img/background.png"); background-repeat: no-repeat; background-position: center; background-size: cover; @@ -90,8 +90,8 @@ h4 { .primaryPizza { display: grid; - grid-template-columns: 1fr 1fr; /* Crée deux colonnes de largeur égale */ - gap: 2rem; /* Espacement entre les colonnes et les lignes */ + grid-template-columns: 1fr 1fr; + gap: 2rem; padding-bottom: 4rem; border-bottom: #fff solid 3px; } @@ -108,23 +108,23 @@ h4 { .secondaryPizza, .boisson { display: flex; - justify-content: space-between; /* Ceci va pousser les éléments aux extrémités opposées de l'espace disponible */ - align-items: center; /* Ceci aligne le haut des éléments */ - width: 100%; /* Ceci s'assure que le `.secondaryPizza` prend toute la largeur disponible */ + justify-content: space-between; + align-items: center; + width: 100%; } .secondaryPizza > div, .boisson > div { - width: 92%; /* 100% divisé par 2, moins 2% pour un peu d'espacement entre les deux */ + width: 92%; padding: 0 1rem 0 2rem; border-right: #fff solid 3px; } .secondaryPizza > p, .boisson > p { - width: 6%; /* 100% divisé par 2, moins 2% pour un peu d'espacement entre les deux */ + width: 6%; margin: 0 2rem; - text-align: right; /* Pour aligner les prix à droite */ + text-align: right; } .secondaryBloc { diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index d257ae8..efe46a9 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -1,7 +1,53 @@ import "./App.css"; +import { useState, useEffect } from "react"; +// eslint-disable-next-line import/no-extraneous-dependencies +import papa from "papaparse"; import logo from "./assets/img/logo.png"; +import PizzaItem from "./components/PizzaItem"; function App() { + const [infoPizza, setInfoPizza] = useState([]); + const [infoSalade, setInfoSalade] = useState([]); + + const prepareData = (data, type) => { + const headers = data[0]; + const rows = data.slice(1); + const json = rows.map((row) => { + const obj = {}; + // eslint-disable-next-line no-return-assign + headers.forEach((key, j) => (obj[key] = row[j])); + return obj; + }); + if (type === "pizza") setInfoPizza(json); + else setInfoSalade(json); + }; + + useEffect(() => { + const csvUrlPizza = + "https://docs.google.com/spreadsheets/d/e/2PACX-1vRBSEKMC4hHRxoorMUzDwtrIYycwh-iFWJwonyjHO2K3fNenXpGsjQuegaxGNJl_9IstKvnRM-YVKSf/pub?gid=0&single=true&output=csv"; + fetch(csvUrlPizza) + .then((response) => { + if (!response.ok) + throw new Error(`Network response was not ok ${response.statusText}`); + return response.text(); + }) + .then((text) => papa.parse(text, { header: false })) + .then((data) => prepareData(data.data, "pizza")) + .catch((error) => console.error("Error:", error)); + + const csvUrlSalade = + "https://docs.google.com/spreadsheets/d/e/2PACX-1vRBSEKMC4hHRxoorMUzDwtrIYycwh-iFWJwonyjHO2K3fNenXpGsjQuegaxGNJl_9IstKvnRM-YVKSf/pub?gid=842071051&single=true&output=csv"; + fetch(csvUrlSalade) + .then((response) => { + if (!response.ok) + throw new Error(`Network response was not ok ${response.statusText}`); + return response.text(); + }) + .then((text) => papa.parse(text, { header: false })) + .then((data) => prepareData(data.data, "salade")) + .catch((error) => console.error("Error:", error)); + }, []); + return (
Sauce tomate, Mozzarella, Basilic
-18.00$
-Sauce tomate, Mozzarella, Anchois, Olive
-18.50$
-- Sauce tomate, Mozzarella, Champignon, Poivron vert, Peppéroni -
-19.50$
-- Sauce Tomate, Mozzarella, Oignon, Bacon, Jambon Blanc, - Peppéroni -
-21.00$
-- Sauce Tomate, Mozzarella, Emmental, Parmesan, Chèvre, Bleu, - Olive -
-23.00$
-- Sauce Tomate, Mozzarella, Champignon, Jambon Blanc, Parmesan, - Olive -
-22.00$
-- Sauce Tomate, Mozzarella, Champignon, Jambon Blanc, Parmesan, - Oeuf -
-22.50$
-- Sauce Tomate, Mozzarella, Oignon, Champignon, Poivron Vert, - Artichaut, Olive -
-21.50$
-- Sauce Tomate, Mozzarella, Oignon, Champignon, Poulet, - Parmesan, Olive -
-22.00$
-- Sauce Tomate, Mozzarella, Oignon, Chèvre, Noix, Parmesan, - Olive, Basilic -
-24.00$
-- Petite pizza pour enfant ou petite faim ( Toute Garnie ou - Végétarienne ) -
-12.00$
-2.50$
-7.50$
-- Salade, Champignon, Poivron vert, Oignon, Artichaut, Olive, - Huile d'Olive, Vinaigre Balsamique -
-13.00$
-- Salade, Poulet, Parmesan, Oignon cryspi, Croutons, Sauce - césar faite maison -
-14.50$
-{ingredients}
+{price}
+