{"version":3,"sources":["assets/logoDQT.jpg","assets/Belfort_tourisme.jpg","components/Footer.jsx","assets/IMG_2559.JPG","components/Hero.jsx","context/AuthContext.js","components/Navbar.jsx","API.jsx","views/Carte/Produits/Modal.jsx","components/ReusableStyles.jsx","views/AlertDelete.jsx","views/Carte/Produits/Produits.jsx","components/ScrollToTop.jsx","views/Services/Modal.jsx","views/Services/Services.jsx","views/Service/Modal.jsx","views/Service/Service.jsx","assets/Traiteur/1.png","assets/Traiteur/2.png","assets/Traiteur/3.png","assets/Traiteur/4.png","assets/Traiteur/5.png","views/Traiteur/Traiteur.jsx","utils/PrivateRoute.js","views/NavBarLogin.jsx","assets/chef.jpeg","views/loginPage.jsx","views/registerPage.jsx","utils/useAxios.js","views/ProtectedPage.jsx","views/Error/Error404.jsx","views/Mentions.jsx","views/DaysTheme/ThemeDays.jsx","index.js"],"names":["Footer","_jsxs","className","children","Section","id","_jsx","Reseau","target","href","FaFacebookF","Qualit","class","src","logoQuali","alt","belfortTourisme","Paiement","LowerFooter","Span","styled","h3","_templateObject","_taggedTemplateLiteral","img","_templateObject2","span","_templateObject3","footer","_templateObject4","div","_templateObject5","_templateObject6","Hero","hero","section","AuthContext","createContext","AuthProvider","_ref","_useState","useState","localStorage","getItem","JSON","parse","_useState2","_slicedToArray","authTokens","setAuthTokens","_useState3","jwt_decode","_useState4","user","setUser","_useState5","_useState6","loading","setLoading","history","useHistory","loginUser","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","username","password","locationHostSite","response","data","wrap","_context","prev","next","console","log","window","location","hostname","process","fetch","method","headers","body","stringify","sent","json","status","access","setItem","push","alert","stop","_x","_x2","apply","arguments","registerUser","_ref3","_callee2","password2","_context2","_x3","_x4","_x5","contextData","logoutUser","removeItem","useEffect","Provider","value","Navbar","navbarState","setNavbarState","_useContext","useContext","navigate","document","querySelector","_Fragment","Nav","VscChromeClose","onClick","GiMenu","style","color","e","stopPropagation","Button","UncontrolledDropdown","setActiveFromChild","DropdownToggle","caret","tag","DropdownMenu","DropdownItem","ResponsiveNav","state","nav","inNavbar","right","GiHamburgerMenu","axios","create","baseURL","ModalArticle","props","services","Modal","_objectSpread","size","centered","ModalBody","Header","closeButton","Title","Form","FormGroup","Label","for","Input","name","defaultValue","activeItem","placeholder","onChange","onChangeName","type","description","onChangeDescription","price","onChangePrice","row","sm","Col","accept","onChangeImage","onHide","handleSubmit","imageZoomEffect","css","TitleStyles","AlertDelete","validateDelete","Produits","modalShow","setModalShow","modalDelete","setModalDelete","_useState7","_useState8","_useState9","_useState10","articles","setArticles","_useState11","_useState12","setName","_useState13","_useState14","setDescription","_useState15","_useState16","_useState17","_useState18","setPrice","_useState19","_useState20","article_img","setImage_url","_useState21","_useState22","active","setActiveItem","refreshArticles","API","get","concat","service","then","res","catch","error","onDelete","delete","nl2br","require","TitleGridProduct","title","TitleProduct","map","product","borderRadius","paddingTop","show","ButtonEdit","backgroundColor","fontSize","BsFillPencilFill","ButtonDelete","item","put","err","post","handlesubmit","files","ButtonAdd","h2","h1","button","ScrollToTop","scrollState","setScrollState","addEventListener","pageYOffset","ToTop","scrollTo","top","AiOutlineArrowUp","ModalHeaderServices","TextArea","textarea","Services","setServices","refreshServices","handleMessageChange","event","index","ServiceStyle","TitleService","GoCalendar","IoMdRestaurant","content1","content2","content3","Service","refreshService","TraiteurStyle","EventFood","items","Image1","key","Image2","Image3","Image4","Image5","Traiteur","args","activeIndex","setActiveIndex","animating","setAnimating","nextIndex","length","previous","slides","Item","onExiting","onExited","altText","CarouselCaption","captionText","caption","captionHeader","Carouselvale","CarouselIndicators","onClickHandler","newIndex","NextandPrevious","direction","directionText","Carousel","CarouselControl","CarouselItem","PrivateRoute","rest","_objectWithoutProperties","_excluded","Route","Redirect","to","NavbarLogin","RowIcon","Row","label","Connexion","ImgChef","LoginPage","Container","chefjpeg","lg","Card","CardBody","onSubmit","preventDefault","htmlFor","Register","setUsername","setPassword","setPassword2","required","useAxios","axiosInstance","Authorization","interceptors","request","use","req","dayjs","unix","exp","diff","abrupt","refresh","ProtectedPage","setRes","api","fetchData","t0","PageNotFound","Mentions","TitleMentions","TitleInfos","OvhTitle","ThemesDays","Products","App","_React$useState","React","_React$useState2","modalIsOpen","setModalIsOpen","Router","Switch","component","path","Login","exact","DaysTheme","Date","content","width","margin","maxHeight","height","isOpen","textAlign","justifyContent","fontFamily","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.bf916249.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/logoDQT.6e582522.jpg\";","export default __webpack_public_path__ + \"static/media/Belfort_tourisme.79f2f49d.jpg\";","import React from \"react\";\nimport styled from \"styled-components\";\nimport logoQuali from \"../assets/logoDQT.jpg\";\nimport belfortTourisme from \"../assets/Belfort_tourisme.jpg\";\nimport { FaFacebookF } from \"react-icons/fa\";\nimport { FaEuroSign } from \"react-icons/fa\";\nimport { FaMoneyCheck } from \"react-icons/fa\";\n\n\nexport default function Footer() {\n return (\n
\n
\n
\n \n \n \n
    \n
  • \n \n
  • \n
    \n
  • \n \n
  • \n
\n
\n
\n
\n

Infos

\n
\n
\n

La petite charrue

\n 13 rue principale

\n 90150 VAUTHIERMONT

\n Siret: 45295260900017

\n RCS: Belfort B 452 952 609

\n
\n
\n {/* \"\" \\ */}\n \n Mentions Légales\n \n
\n
\n
\n
\n

Horaires de l'échoppe

\n
\n
    \n
  • De 7h à 12h et de 18h à 19h
  • \n
  • Fermé le lundi soir et le mercredi toute la journée
  • \n
\n
\n
\n
\n

Horaires de service

\n
\n
    \n
  • Lundi:\t12:00–13:30, Fermé
  • \n
  • Mardi:\t12:00–13:30, 19:00–21:15
  • \n
  • Mercredi:\tFermé
  • \n
  • Jeudi:\t12:00–13:30, 19:00–21:15
  • \n
  • Vendredi:\t12:00–13:30, 19:00–21:15
  • \n
  • Samedi:\t12:00–13:30, 19:00–21:15
  • \n
  • Dimanche:\t12:00–13:30, 19:00–21:15
  • \n\n
  • Service du midi, fermeture à 15h30
  • \n
  • Service du soir, fermeture à 23h30
  • \n\n
  • Dimanche:\t12:00–13:30, 19:00–21:15
  • \n\n
\n
\n
\n
\n

Contact

\n
\n

03 84 23 89 14

\n aubergelapetitecharrue@gmail.com

\n la petite charrue

\n 13 rue principale

\n 90150 VAUTHIERMONT\n

\n
\n
\n
\n Moyens de paiement\n
\n
    \n
  • \n Espece\n
  • \n
  • \n Chèque\n
  • \n
  • \n Carte bleu\n
  • \n
  • \n Ticket restaurant\n
  • \n
  • \n ANCV\n
  • \n
\n
\n
\n \n

\n Copyright © 2023 Heidet Antoine\n

\n
\n
\n );\n}\n\nconst Paiement = styled.h3`\n padding-right: 2%;\n`\n\nconst Qualit = styled.img`\n height: 40%;\n width: 50%;\n`\n\nconst Span = styled.span`\n font-size: 13px;\n color: #fc4958;\n`; \n\nconst Section = styled.footer`\n margin: 0;\n background: linear-gradient(to right,#b42352,#400015);\n color: white;\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n padding: 2vw;\n gap: 2vw;\n p {\n font-size: 15px;\n line-height: 2rem;\n letter-spacing: 0.1rem;\n }\n ul {\n list-style-type: none;\n padding-left: initial;\n font-size: 15px;\n }\n .container {\n display: flex;\n width: 120%;\n flex-direction: column;\n gap: 0.5rem;\n h3 {\n font-size: 2rem;\n }\n .title_paiement { \n display : inline-flex;\n }\n svg {\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fc4958;\n font-size: 1.6rem;\n transition: 0.3s ease-in-out;\n &:hover {\n }\n }\n }\n @media screen and (min-width: 260px) and (max-width: 1080px) {\n grid-template-columns: 1fr;\n .container {\n img {\n height: 9rem;\n width: 15rem;\n }\n }\n }\n`;\nconst Reseau = styled.div`\nul {\n display: flex;\n list-style-type: none;\n // gap: 4vw;\n // margin-top: 2vw;\n li {\n padding: 0.8rem;\n border-radius: 2rem;\n background-color: white;\n transition: 0.3s ease-in-out;\n cursor: pointer;\n &:hover {\n svg {\n transform: scale(1.2);\n }\n img {\n transform: scale(1.2);\n }\n }\n svg {\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fc4958;\n font-size: 1.6rem;\n transition: 0.3s ease-in-out;\n &:hover {\n }\n }\n img {\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fc4958;\n font-size: 1.6rem;\n transition: 0.3s ease-in-out;\n &:hover {\n }\n }\n }\n}\n\n}`;\n\nconst LowerFooter = styled.div`\n margin: 0;\n text-align: center;\n background-color: black;\n color: white;\n padding: 1rem;\n h2 {\n span {\n color: #fc4958;\n text-transform: uppercase;\n }\n }\n @media screen and (min-width: 260px) and (max-width: 450px) {\n h2 {\n span {\n display: block;\n }\n }\n }\n`;\n","export default __webpack_public_path__ + \"static/media/IMG_2559.35c2dd01.JPG\";","import React from \"react\";\nimport styled from \"styled-components\";\nimport hero from \"../assets/IMG_2559.JPG\";\nexport default function Hero() {\n return (\n
\n
\n \"Background\n
\n
\n\n
\n

Auberge La Petite Charrue

\n \n

\n Comtois rends-toi, Nenni ma foi. \n

\n

\n Telle est notre devise, à nous franc-comtois, depuis la nuit des temps ...\n

\n
\n
\n
\n
\n );\n}\n//filter: brightness(60%);\nconst Section = styled.section`\n height: 90vh;\n width: 100vw;\n position: relative;\n\n .background {\n height: 100%;\n background-color: black;\n img {\n object-fit: cover;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n }\n }\n .content {\n .contentTextSlider {\n width: 16em;\n }\n position: absolute;\n top: 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 100%;\n width: 100%;\n .info {\n display: flex;\n margin: auto;\n flex-direction: column;\n align-items: flex-end;\n gap: 1rem;\n h2 {\n color: #fc4958;\n font-size: 4rem;\n letter-spacing: 0.5rem;\n }\n em {\n color: white;\n font-size: 1.1rem;\n line-height: 2rem;\n letter-spacing: 0.1rem;\n }\n button {\n padding: 1rem 2rem;\n font-size: 1.4rem;\n background-color: #ff063b;\n border: none;\n color: white;\n font-weight: 800;\n letter-spacing: 0.2rem;\n transition: 0.3s ease-in-out;\n cursor: pointer;\n &:hover {\n background-color: #f9c74f;\n }\n }\n }\n }\n @media screen and (min-width: 260px) and (max-width: 1080px) {\n .content {\n flex-direction: column;\n .sale {\n display: none;\n }\n h2{\n text-align: center;\n }\n em{\n text-align: center;\n }\n .contentTextSlider {\n width: initial;\n }\n .info {\n margin: auto;\n max-width: 90%;\n top: 25%;\n align-items: initial;\n h2 {\n font-size: 2rem;\n }\n em {\n margin: auto;\n max-width: 90%;\n }\n }\n }\n }\n`;\n","import { createContext, useState, useEffect } from \"react\";\nimport jwt_decode from \"jwt-decode\";\nimport { useHistory } from \"react-router-dom\";\n\nconst AuthContext = createContext();\n\nexport default AuthContext;\n\nexport const AuthProvider = ({ children }) => {\n const [authTokens, setAuthTokens] = useState(() =>\n localStorage.getItem(\"authTokens\")\n ? JSON.parse(localStorage.getItem(\"authTokens\"))\n : null\n );\n const [user, setUser] = useState(() =>\n localStorage.getItem(\"authTokens\")\n ? jwt_decode(localStorage.getItem(\"authTokens\"))\n : null\n );\n const [loading, setLoading] = useState(true);\n\n const history = useHistory();\n\n const loginUser = async (username, password) => {\n\n if(process.env.NODE_ENV === 'production'){\n console.log('production')\n var locationHostSite = window.location.hostname\n }else {\n console.log('dev')\n var locationHostSite = window.location.hostname+\":8010\"\n } \n console.log('process.env.NODE_ENV =>', process.env.NODE_ENV)\n const response = await fetch(\"http://\"+locationHostSite+\"/api/login/token/\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n username,\n password\n })\n });\n const data = await response.json();\n\n\n if (response.status === 200) {\n console.log(data)\n setAuthTokens(data);\n setUser(jwt_decode(data.access));\n localStorage.setItem(\"authTokens\", JSON.stringify(data));\n history.push(\"/\");\n } else {\n alert(\"Utilisateur ou mot de passe incorrect !\");\n }\n };\n\n const registerUser = async (username, password, password2) => {\n const response = await fetch(\"http://\"+window.location.hostname+\"/api/login/register/\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n username,\n password,\n password2\n })\n });\n if (response.status === 201) {\n history.push(\"/login\");\n } else {\n alert(\"Quelque chose s'est mal passé!\");\n }\n };\n\n const logoutUser = () => {\n setAuthTokens(null);\n setUser(null);\n localStorage.removeItem(\"authTokens\");\n history.push(\"/\");\n };\n\n const contextData = {\n user,\n setUser,\n authTokens,\n setAuthTokens,\n registerUser,\n loginUser,\n logoutUser\n };\n\n useEffect(() => {\n if (authTokens) {\n setUser(jwt_decode(authTokens.access));\n }\n setLoading(false);\n }, [authTokens, loading]);\n\n return (\n \n {loading ? null : children}\n \n );\n};\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { BrowserRouter as Router, Route, Routes, Redirect, Link } from 'react-router-dom'\nimport styled from \"styled-components\";\nimport { GiConsoleController, GiHamburgerMenu } from \"react-icons/gi\";\nimport { VscChromeClose } from \"react-icons/vsc\";\nimport { browserHistory } from 'react-router'\nimport { Button, Dropdown, NavbarToggler, Collapse, UncontrolledDropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\nimport { useHistory } from \"react-router-dom\";\nimport AuthContext from \"../context/AuthContext\";\n\nexport default function Navbar() {\n const [navbarState, setNavbarState] = useState(false);\n const { user, logoutUser } = useContext(AuthContext);\n const html = document.querySelector(\"html\");\n const navigate = useHistory();\n /* html.addEventListener(\"click\", () => setNavbarState(false)); */\n const [isOpen, setIsOpen] = useState(false);\n console.log('vous êtes en mode :',process.env.NODE_ENV)\n const toggle = () => setIsOpen(!isOpen);\n return (\n <>\n \n \n \n \n \n \n );\n}\n\n\n\n\nconst GiMenu = styled(GiHamburgerMenu)`\n font-size: 20px;\n`\n\nconst Nav = styled.nav`\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 100px;\n padding: 0 4vw;\n border-bottom: 2px solid #7a032a;\n .logout-button {\n margin-right: 25em;\n }\n a {\n text-decoration: none;\n }\n .brand1 {\n .social-name{\n color: #fc4958;\n font-family: Brush Script MT, Brush Script Std, cursive;\n font-size:23px;\n }\n .social-name-two{\n color: white;\n font-family: Brush Script MT, Brush Script Std, cursive;\n font-size: 18px;\n }\n img {\n margin-top: 1rem;\n cursor: pointer;\n }\n .toggle {\n display: none;\n }\n }\n .links {\n display: flex;\n list-style-type: none;\n gap: 2rem;\n li {\n .nav-link {\n padding: 0;\n }\n .dropdown-menu{\n width: 15em;\n }\n a {\n color: #ff063b;\n font-weight: 600;\n text-decoration: none;\n text-transform: uppercase;\n letter-spacing: 0.2rem;\n transition: 0.3s ease-in-out;\n &:hover {\n color: #f9c74f;\n }\n }\n \n .active {\n color: #f9c74f;\n }\n }\n }\n @media only screen and (-webkit-min-device-pixel-ratio: 2) {\n .logout-button > button{\n font-size: 10px!important;\n }\n }\n @media screen and (min-width: 260px) and (max-width: 1080px) {\n .brand1 {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n top: 0;\n .toggle {\n display: block;\n }\n }\n .links {\n display: none;\n }\n .logout-button{\n margin-right: initial!important;\n }\n }\n`;\nconst ResponsiveNav = styled.div`\n .close-button {\n background-color: transparent;\n border: none;\n cursor: pointer;\n color: #fc4958; \n font-size: 20px;\n position: absolute;\n top: 1em;\n right: 1em;\n z-index: 1; /* Assurez-vous que le bouton est au-dessus du contenu du menu */\n\n border: 1px solid white;\n padding: 0px 8px 0px 8px; \n border-radius: 0.5em;\n }\n position: fixed;\n right: -100vw;\n top: 0;\n z-index: 10;\n background-color: white;\n height: 100vh;\n width: ${({ state }) => (state ? \"60%\" : \"0%\")};\n transition: 0.3s ease-in-out;\n display: flex;\n opacity: 0;\n visibility: hidden;\n background-color: #333;\n ul {\n list-style-type: none;\n width: 100%;\n margin-top: 3rem;\n li {\n width: 100%;\n margin: 1rem 0;\n margin-left: 0rem;\n a {\n text-decoration: none;\n color: #f9c74f;\n font-size: 1.2rem;\n transition: 0.1s ease-in-out;\n &:hover {\n color: #fc4958;\n }\n } \n &:first-of-type {\n a {\n color: #fc4958;\n font-weight: 900;\n }\n }\n }\n }\n`;\n","import axios from 'axios';\n\nconsole.log('process.env.NODE_ENV ',process.env.NODE_ENV)\nif(process.env.NODE_ENV === 'production'){\n console.log('production')\n var locationHostSite = \"http://\"+window.location.hostname+\"/\"\n}else {\n console.log('dev')\n var locationHostSite = \"http://\"+window.location.hostname+\":8010/\"\n} \n\nexport default axios.create({\n \n baseURL: locationHostSite,\n headers: {\n 'Accept':'application/json',\n 'Content-Type':'application/json',\n }, \n})","import React, { Component } from \"react\";\nimport Button from 'react-bootstrap/Button';\nimport Modal from 'react-bootstrap/Modal';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport styled from \"styled-components\";\nimport {useState, useEffect} from 'react';\nimport { Form, FormGroup, Label, Col, Input, FormText, ModalBody} from 'reactstrap';\n\n\nexport default function ModalArticle(props) {\n return (\n console.log(props.services),\n \n \n \n \n Gestionnaire\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n {props.services != \"ThemesDays\" ? (\n <>\n \n \n Image\n \n \n \n \n \n \n ) : (\n <>\n \n {/* Login */}\n {/* Register */}\n \n )}\n \n
\n
\n \n \n \n \n \n );\n}\n\n\nconst FormAlerte = styled.span` \n font-size: 15px;\n color: red;\n`","import { css } from \"styled-components\";\n\nexport const imageZoomEffect = css`\n img {\n transition: 0.8s ease-in-out;\n &:hover {\n transform: scale(1.2);\n }\n }\n`;\n\nexport const TitleStyles = css`\n .title {\n text-align: center;\n display: flex;\n flex-direction: column;\n gap: 2rem;\n h1 {\n font-size: 3rem;\n text-transform: uppercase;\n span {\n color: #fc4958;\n }\n }\n .yellow {\n color: #f9c74f;\n }\n p {\n padding: 0 10vw;\n font-size: 1.1rem;\n line-height: 2rem;\n letter-spacing: 0.1rem;\n }\n }\n @media screen and (min-width: 260px) and (max-width: 1080px) {\n .title {\n gap: 1rem;\n h1 {\n font-size: 2rem;\n }\n p {\n padding: 0 1vw;\n }\n }\n }\n`;\n","import React, { useState } from 'react';\n\nimport Modal from 'react-bootstrap/Modal';\nimport { Form, FormGroup, Label, Col, Input, FormText, ModalBody, Button} from 'reactstrap';\n\nexport default function AlertDelete(props) {\n console.log(props)\n\n return (\n \n \n \n \n Modal heading\n \n \n \n Voulez-vous vraiment supprimer cette article ?\n \n \n \n {' '}\n {/* */}\n \n \n\n\n );\n}\n// onClick={toggle}\n\n","import React from \"react\";\nimport {useState, useEffect, useContext} from 'react';\nimport styled from \"styled-components\";\nimport API from \"../../../API\";\nimport ModalArticle from \"./Modal\";\nimport { Button } from 'reactstrap';\nimport { imageZoomEffect, TitleStyles } from \"../../../components/ReusableStyles\";\nimport { BsArrowCounterclockwise, BsFillPencilFill } from \"react-icons/bs\";\nimport AuthContext from \"../../../context/AuthContext\";\nimport AlertDelete from \"../../AlertDelete\"\n\nexport default function Produits(props) {\n const [modalShow, setModalShow] = useState(false);\n const [modalAddArticleShow, setModalAddArticleShow] = useState(false);\n const [modalDelete, setModalDelete] = useState(false);\n const [addModalShow, setAddModalShow] = useState(false);\n const [articles, setArticles] = useState([])\n const [name , setName] = useState(\"\");\n const [description , setDescription] = useState(\"\");\n const [id , setId] = useState(\"\");\n const [price , setPrice] = useState(\"\");\n const [article_img , setImage_url] = useState();\n const [active , setActiveItem] = useState([]);\n const { user, logoutUser, authTokens } = useContext(AuthContext);\n\n useEffect(() => {\n refreshArticles();\n }, []);\n\n const updateAfterDelete = () => {\n refreshArticles();\n };\n\n const refreshArticles = () => {\n API.get(`/api/${props.service}/`)\n .then((res) => {\n setArticles(res.data);\n })\n .catch(console.error);\n };\n\n const onShowDelete = (item) => {\n setActiveItem(item);\n setModalDelete(true)\n }\n\n const onDelete = () => {\n console.log('authTokens =>',authTokens)\n API.delete(`/api/${props.service}/${active.id}/`)\n .then((res) => updateAfterDelete(active))\n .then((res) => refreshArticles())\n .catch(console.error);\n setModalDelete(false)\n };\n\n const onUpdate = (item) => {\n setActiveItem(item);\n setModalShow(true) \n };\n\n const setModalAddArticle = (item) => {\n \n setActiveItem(\"\");\n refreshArticles();\n setModalShow(true) ;\n };\n\n\n\n const handlesubmit = (item) => {\n if(item.id){\n let data = {\n id: item.id,\n name : name,\n description :description,\n price : price,\n article_img : article_img,\n }\n if(!name){\n data.name = item.name\n }\n if(!description){\n data.description = item.description\n }\n if(!price){\n data.price = item.price\n }\n if(!article_img){\n data.article_img = null\n }\n console.log(active)\n console.log(data)\n API.put(`/api/${props.service}/${item.id}/`, data, {\n headers: {\n 'content-type': 'multipart/form-data',\n // 'Authorization': \"JWT \" + authTokens.access,\n }\n })\n .then((res) => refreshArticles())\n .catch(err=> console.log(err));\n setModalShow(false) \n setName('')\n setDescription('')\n setPrice('')\n setImage_url('')\n \n }else { \n let data = {\n name : name,\n description : description,\n price : price,\n article_img : article_img\n }\n\n API.post(`/api/${props.service}/` , data, {\n headers: {\n 'content-type': 'multipart/form-data',\n // 'Authorization': \"JWT \" + authTokens.access,\n }\n })\n .then((res) => refreshArticles())\n .catch(err=> console.log(err));\n setModalShow(false)\n }\n\n }\n const nl2br = require('react-nl2br');\n return (\n
\n
\n \n {props.service === 'Fondues' ?(\n <>\n {props.title} \n A partir de deux personnes, prix à la portion\n \n ) :(<>\n {props.title} \n )}\n \n
\n {articles.map((product) => {\n return (\n
\n
\n
\n {product.article_img ? (\n <>\n
\n \"\"\n
\n \n ) :(<>\n \n )}\n
\n {product.name}\n

{nl2br(product.description)}

\n {product.price ? ( \n <> \n

{product.price}€

\n \n ) : (\n <>\n {/* Login */}\n {/* Register */}\n \n )}\n \n
\n {product.name ? (\n <>\n setModalDelete(false)}\n validateDelete={() => onDelete(product)}\n />\n {user ? (\n <>\n
\n \n onUpdate(product)}>\n \n \n \n \n \n \n \n \n
\n \n ) : (\n <>\n {/* Login */}\n {/* Register */}\n \n )}\n \n ) : (\n <>\n {/* Login */}\n {/* Register */}\n \n )}\n
\n setModalShow(false)}\n handleSubmit={() => handlesubmit(active)}\n activeItem={active}\n onChangeName={(e)=>setName(e.target.value)}\n onChangeDescription={(e)=>setDescription(e.target.value)}\n onChangePrice={(e)=>setPrice(e.target.value)}\n onChangeImage={(e)=>setImage_url(e.target.files[0])}\n services={props.service} \n />\n
\n
\n );\n })}\n {user ? (\n <>\n
\n setModalAddArticle()}\n >\n Ajouter un article\n \n
\n \n ) : (\n <>\n {/* Login */}\n {/* Register */}\n \n )} \n
\n \n );\n}\n\nconst TitleProduct = styled.h2`\n color: #fc4958;\n`\n\nconst TitleGridProduct = styled.h1`\n color: #fc4958;\n font-family: cursive;\n`\n\nconst ButtonAdd = styled.button`\n margin-left: 3em;\n margin-bottom: 3em;\n`\n\nconst ButtonEdit = styled.button`\n border: none;\n background-color: white;\n margin-left: 1em;\n`\n\nconst ButtonDelete = styled.span`\n margin-right: 10em;\n`\n\nconst Section = styled.section`\n ${TitleStyles};\n margin-top: 1em!important;\n p{\n color:white;\n }\n .addArticle{\n text-align: center;\n }\n .products {\n display: grid;\n grid-template-columns: repeat(1, 1fr);\n gap: 3rem;\n margin-top: 3rem;\n .product {\n justify-self: center;\n padding-bottom: 3%;\n flex-direction: initial;\n gap: 5.6rem;\n justify-content: center;\n align-items: center;\n .product-infos {\n text-align: center;\n max-width: 60em;\n min-width: 60em;\n }\n .btnCrudProduct{\n text-align: center;\n padding-left: 20em;\n .btnDelete{\n padding-left: 5em;\n }\n }\n h3 {\n color: #fc4958;\n }\n .plus{\n color:red;\n }\n p {\n // text-align: center;\n font-size: 1.1rem;\n line-height: 2rem;\n letter-spacing: 0.2rem;\n }\n ${imageZoomEffect};\n .image {\n text-align: center;\n max-height: 15rem;\n overflow: hidden;\n border-radius: 1rem;\n img {\n height: 15rem;\n width: 15rem;\n object-fit: cover;\n }\n }\n .see {\n border: none;\n padding: 1rem 4rem;\n font-size: 1.4rem;\n color: white;\n border-radius: 4rem;\n transition: 0.5s ease-in-out;\n cursor: pointer;\n background-color: #ff063b;\n text-transform: uppercase;\n &:hover {\n background: #f9c74f;\n }\n }\n }\n }\n\n @media screen and (min-width: 280px) and (max-width: 720px) {\n section{\n margin-top: 2em!important;\n }\n .products {\n grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\n text-align: center!important;\n }\n .product {\n display: inline-block!important;\n padding-left: initial!important;\n }\n .product-infos{\n max-width: 40em!important;\n min-width: initial!important;\n }\n img{\n margin-bottom: 2em;\n border-radius: 2em!important;\n }\n }\n \n @media screen and (min-width: 720px) and (max-width: 1080px) {\n section{\n margin-top: 2em!important;\n }\n .products {\n grid-template-columns: repeat(2, 1fr);\n text-align: center!important;\n }\n .product {\n display: inline-block!important;\n padding-left: initial!important;\n }\n .product-infos{\n max-width: 40em!important;\n min-width: initial!important;\n }\n img{\n margin-bottom: 2em;\n border-radius: 2em!important;\n }\n }\n`","import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport { AiOutlineArrowUp } from \"react-icons/ai\";\nexport default function ScrollToTop() {\n const [scrollState, setScrollState] = useState(false);\n const toTop = () => {\n window.scrollTo({ top: 0 });\n };\n window.addEventListener(\"scroll\", () => {\n window.pageYOffset > 200 ? setScrollState(true) : setScrollState(false);\n });\n return (\n \n \n \n );\n}\n\nconst ToTop = styled.div`\n display: ${({ scrollState }) => (scrollState ? \"block\" : \"none\")};\n position: fixed;\n cursor: pointer;\n z-index: 10;\n bottom: 1rem;\n right: 2rem;\n border-radius: 2rem;\n background: linear-gradient(to right, #fc4958, #e85d04);\n padding: 1rem 1.15rem;\n svg {\n transition: 0.6s ease-in-out;\n color: white;\n font-size: 1.5rem;\n }\n &:hover {\n svg {\n transform: scale(1.8);\n }\n }\n`;\n","import React, { Component } from \"react\";\nimport Button from 'react-bootstrap/Button';\nimport Modal from 'react-bootstrap/Modal';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport {useState, useEffect} from 'react';\nimport styled from \"styled-components\";\nimport { Form, FormGroup, Label, Col, Input, FormText, ModalBody} from 'reactstrap';\n\n\nexport default function ModalHeaderServices(props) {\n return (\n \n \n \n \n Modification\n \n \n {/* */}\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n );\n}\nconst TextArea = styled.textarea` \n min-width: 500px;\n min-height: 100px;\n`","import React from \"react\";\nimport styled from \"styled-components\";\nimport ModalHeaderServices from \"./Modal\";\nimport { IoMdRestaurant } from \"react-icons/io\";\nimport { GoCalendar } from \"react-icons/go\";\nimport {useState, useEffect, useContext} from 'react';\nimport { TitleStyles } from \"../../components/ReusableStyles\";\nimport API from \"../../API\";\nimport { BsFillPencilFill } from \"react-icons/bs\";\nimport AuthContext from \"../../context/AuthContext\";\n\nexport default function Services() {\n const [modalShow, setModalShow] = useState(false);\n const [services, setServices] = useState([])\n const { user, logoutUser } = useContext(AuthContext);\n\n\n useEffect(() => {\n refreshServices();\n }, []);\n\n const refreshServices = () => {\n API.get(\"api/Services/\")\n .then((res) => {\n setServices(res.data);\n })\n .catch(console.error);\n };\n\n const handleMessageChange = event => {\n if (event.target.id === 'title'){\n // console.log(services)\n services[0].title = event.target.value\n }\n if (event.target.id === 'description'){\n services[0].description = event.target.value\n }\n };\n\n const handlesubmit = () => {\n if (services[0].id) {\n API.put(`api/Services/${services[0].id}/`, services[0])\n .then((res) => refreshServices());\n return;\n }\n API.post(`api/Services/`, services)\n .then((res) => refreshServices());\n };\n\n return (\n
\n {services.map((services, index) => {\n return(\n
\n \n {services.title} \n \n {user ? (\n <>\n setModalShow(true)}>\n \n \n \n ) : (\n <>\n {/* Login */}\n \n )}\n \n \n \n
\n \n

\n {services.description}\n \n {user ? (\n <>\n setModalShow(true)}>\n \n \n \n ) : (\n <>\n {/* Login */}\n {/* Register */}\n \n )}\n \n

\n
\n
\n setModalShow(false)}\n handleSubmit = {() => handlesubmit()}\n activeItem={services}\n onChange = {handleMessageChange}\n />\n
\n )\n })}\n \n
\n ); \n}\n// export default Services;\n\nconst EventFood = styled(GoCalendar)`\n color: #ff063b;\n font-size: 3em;\n`\n\nconst TraiteurStyle = styled(IoMdRestaurant)`\n color: #ff063b;\n font-size: 3em;\n`\n\nconst ButtonEdit = styled.button`\n border: none;\n background-color: white;\n margin-left: 1em;\n`\n\nconst ServiceStyle = styled.div`\n display: inline-flex;\n align-self: center;\n color: white;\n`\n\nconst TitleService = styled.h1`\n color: #fc4958;\n`\n\nconst Section = styled.section`\n margin: 2rem 4rem;\n ${TitleStyles};\n .services {\n display: grid;\n color:white;\n grid-template-columns: repeat(3, 1fr);\n gap: 10vw;\n margin-top: 4rem;\n .service {\n color:white;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1.5vw;\n padding: 0 3vw;\n img {\n height: 2.8rem;\n }\n p {\n text-align: center;\n line-height: 2rem;\n font-size: 1.1rem;\n letter-spacing: 0.1rem;\n }\n // button {\n // padding: 0.6rem 3rem;\n // letter-spacing: 0.2rem;\n // border-radius: 2rem;\n // font-size: 1.1rem;\n // border: none;\n // color: white;\n // background-color: #fc4958;\n // transition: 0.3s ease-in-out;\n // &:hover {\n // background-color: #f9c74f;\n // }\n // }\n }\n // .yellow {\n // button {\n // // background-color: #f9c74f;\n // &:hover {\n // background-color: #fc4958;\n // }\n // }\n // }\n }\n @media screen and (min-width: 260px) and (max-width: 1080px) {\n margin: 2rem;\n .services {\n grid-template-columns: 1fr;\n }\n }\n`;\n","import React from \"react\";\nimport Button from 'react-bootstrap/Button';\nimport Modal from 'react-bootstrap/Modal';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport styled from \"styled-components\";\nimport { Form, FormGroup, Label, Col, Input, FormText, ModalBody} from 'reactstrap';\n\n\n\n\nexport default function ModalHeaderServices(props) {\n return (\n \n \n \n \n Modification\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n );\n}\n\nconst TextArea = styled.textarea` \n min-width: 500px;\n min-height: 100px;\n`\n\n//min-width: 500px;\n//min-height: 100px;","import React from \"react\";\nimport cloche from \"../../assets/cloche1.png\";\nimport {useState, useEffect, useContext} from 'react';\nimport styled from \"styled-components\";\nimport { IoMdRestaurant } from \"react-icons/io\";\nimport { GoCalendar } from \"react-icons/go\";\nimport { TitleStyles } from \"../../components/ReusableStyles\";\nimport API from \"../../API\";\nimport ModalHeaderServices from \"./Modal\";\nimport { BsFillPencilFill } from \"react-icons/bs\";\nimport AuthContext from \"../../context/AuthContext\";\n\nexport default function Service() {\n const [modalShow, setModalShow] = useState(false);\n const [services, setServices] = useState([])\n const { user, logoutUser } = useContext(AuthContext);\n\n useEffect(() => {\n refreshService();\n }, []);\n\n const refreshService = () => {\n API.get(\"/api/Service/\")\n .then((res) => {\n setServices(res.data);\n })\n .catch(console.error);\n };\n\n const handleMessageChange = event => {\n\n console.log(services[0].content1)\n\n\n if(event.target.id === 'content1'){\n services[0].content1 = event.target.value\n }\n if(event.target.id === 'content2'){\n services[0].content2 = event.target.value\n }\n if(event.target.id === 'content3'){\n services[0].content3 = event.target.value\n }\n };\n\n const handleSubmit = () => {\n if(services[0].id) {\n\n API.put(`api/Service/${services[0].id}/`, services[0])\n .then((res) => refreshService());\n setModalShow(false)\n return;\n }\n API.post(`api/Service/`, services)\n .then((res) => refreshService());\n setModalShow(false)\n };\n\n\n return (\n
\n {services.map((service, index) => {\n return(\n
\n \n
\n \n

\n {service.content1}\n

\n
\n {/*
\n \"\"\n

\n {service.content2}\n

\n
*/}\n
\n \n

\n {service.content3}\n \n {user ? (\n <>\n setModalShow(true)}>\n \n \n \n ) : (\n <>\n {/* Login */}\n {/* Register */}\n \n )}\n \n

\n
\n setModalShow(false)}\n handleSubmit = {() => handleSubmit()}\n activeItem={services[0]}\n onChange={handleMessageChange}\n />\n
\n ); \n })} \n
\n ); \n}\n\n\n\nconst EventFood = styled(GoCalendar)`\n color: #fc4958;\n font-size: 3em;\n`\n\nconst TraiteurStyle = styled(IoMdRestaurant)`\n color: #fc4958;\n font-size: 3em;\n`\n\nconst ButtonEdit = styled.button`\n border: none;\n background-color: white;\n margin-left: 1em;\n`\n\nconst Section = styled.section`\n margin: 2rem 4rem;\n ${TitleStyles};\n .services {\n color:white;\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 10vw;\n margin-top: 4rem;\n .service {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1.5vw;\n padding: 0 3vw;\n img {\n height: 2.8rem;\n }\n p {\n text-align: center;\n line-height: 2rem;\n font-size: 1.1rem;\n letter-spacing: 0.1rem;\n }\n }\n }\n @media screen and (min-width: 260px) and (max-width: 1080px) {\n margin: 2rem;\n .services {\n grid-template-columns: 1fr;\n color:white;\n }\n }\n`;\n","export default __webpack_public_path__ + \"static/media/1.cecf7c48.png\";","export default __webpack_public_path__ + \"static/media/2.25c6fe27.png\";","export default __webpack_public_path__ + \"static/media/3.610becf0.png\";","export default __webpack_public_path__ + \"static/media/4.5222ce54.png\";","export default __webpack_public_path__ + \"static/media/5.b9657d22.png\";","import styled from \"styled-components\";\nimport { imageZoomEffect, TitleStyles } from \"../../components/ReusableStyles\";\nimport Image1 from \"../../assets/Traiteur/1.png\";\nimport Image2 from \"../../assets/Traiteur/2.png\";\nimport Image3 from \"../../assets/Traiteur/3.png\";\nimport Image4 from \"../../assets/Traiteur/4.png\";\nimport Image5 from \"../../assets/Traiteur/5.png\";\nimport React, { useState } from 'react';\nimport {\n Carousel,\n CarouselItem,\n CarouselControl,\n CarouselIndicators,\n CarouselCaption,\n} from 'reactstrap';\n\nconst items = [\n {\n src: Image1,\n key: 1,\n },\n {\n src: Image2,\n key: 2,\n },\n {\n src: Image3,\n key: 3,\n },\n {\n src: Image4,\n key: 3,\n },\n {\n src: Image5,\n key: 3,\n },\n];\n\nexport default function Traiteur(args) {\n const [activeIndex, setActiveIndex] = useState(0);\n const [animating, setAnimating] = useState(false);\n\n const next = () => {\n if (animating) return;\n const nextIndex = activeIndex === items.length - 1 ? 0 : activeIndex + 1;\n setActiveIndex(nextIndex);\n };\n\n const previous = () => {\n if (animating) return;\n const nextIndex = activeIndex === 0 ? items.length - 1 : activeIndex - 1;\n setActiveIndex(nextIndex);\n };\n\n const goToIndex = (newIndex) => {\n if (animating) return;\n setActiveIndex(newIndex);\n };\n\n const slides = items.map((item) => {\n return (\n setAnimating(true)}\n onExited={() => setAnimating(false)}\n key={item.src}\n >\n {item.altText}\n \n \n \n );\n \n });\n\n return (\n \n \n {slides}\n \n \n \n \n \n );\n \n}\n\nconst Carouselvale = styled(Carousel)`\n@media screen and (min-width: 280px) and (max-width: 720px) {\n img{\n zoom: 0.4!important;\n } \n .carousel-inner{\n height: 28em!important;\n }\n}\n\n@media screen and (min-width: 720px) and (max-width: 1080px) {\n img{\n zoom: 0.4!important;\n }\n .carousel-inner{\n height: 28em!important;\n }\n}\n`\nconst NextandPrevious = styled(CarouselControl)`\n color:black;\n .carousel-control-next-icon, .carousel-control-prev-icon{\n background-color: #400015!important;\n border-radius: 15px;\n }\n`\n\nconst Item = styled(CarouselItem)`\n text-align: center!important;\n @media screen and (min-width: 280px) and (max-width: 720px) {\n img{\n zoom: 0.4!important;\n } \n .carousel-inner{\n height: 28em!important;\n }\n }\n \n @media screen and (min-width: 720px) and (max-width: 1080px) {\n img{\n zoom: 0.4!important;\n }\n .carousel-inner{\n height: 28em!important;\n }\n }\n\n`\n\n\n// zoom: 0.4;","import { Route, Redirect } from \"react-router-dom\";\nimport { useContext } from \"react\";\nimport AuthContext from \"../context/AuthContext\";\n\nconst PrivateRoute = ({ children, ...rest }) => {\n let { user } = useContext(AuthContext);\n return {!user ? : children};\n};\n\nexport default PrivateRoute;\n","import React, { useState, useEffect, useContext } from \"react\";\nimport styled from \"styled-components\";\nimport AuthContext from \"../context/AuthContext\";\n\nexport default function NavbarLogin() {\n const [navbarState, setNavbarState] = useState(false);\n const { user, logoutUser } = useContext(AuthContext);\n const html = document.querySelector(\"html\");\n const [isOpen, setIsOpen] = useState(false);\n const toggle = () => setIsOpen(!isOpen);\n return (\n <>\n \n \n );\n}\n\n\nconst Nav = styled.nav`\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 100px;\n padding: 0 4vw;\n border-bottom: 2px solid #7a032a;\n .logout-button {\n margin-right: 25em;\n }\n a {\n text-decoration: none;\n }\n .brand1 {\n .social-name{\n color: #ff063b;\n font-family: Brush Script MT, Brush Script Std, cursive;\n font-size:23px;\n margin-bottom: 0;\n }\n .social-name-two{\n color: white;\n font-family: Brush Script MT, Brush Script Std, cursive;\n font-size: 18px;\n }\n }\n`;\n","export default __webpack_public_path__ + \"static/media/chef.5b23133c.jpeg\";","import { useContext } from \"react\";\nimport AuthContext from \"../context/AuthContext\";\nimport { Container, Row, Col, Card, CardBody, Button } from \"reactstrap\";\nimport styled from \"styled-components\";\nimport NavbarLogin from \"./NavBarLogin\"\nimport chefjpeg from \"../assets/chef.jpeg\"\nconst LoginPage = () => {\n const { loginUser } = useContext(AuthContext);\n const handleSubmit = e => {\n e.preventDefault();\n const username = e.target.username.value;\n const password = e.target.password.value;\n username.length > 0 && loginUser(username, password);\n };\n\n return (\n \n \n\n \n \n \n \n \n \n

\n

\n \n \n
\n
\n Connexion Administration\n
\n

\n

\n

\n\n

\n

\n

\n \n
\n
\n
\n
\n \n \n
\n
\n );\n};\nconst Section = styled.section`\n .formblock {\n text-align: center;\n }\n`\nconst RowIcon = styled(Row)`\n justify-content: center;\n`\nconst Label = styled.label`\n color: #ff063b;\n font-family: Brush Script MT, Brush Script Std, cursive;\n font-size: 3em;\n margin-bottom: 0;\n`\nconst Connexion = styled.h1`\n color: #ff063b;\n font-family: Brush Script MT, Brush Script Std, cursive;\n font-size: 7em;\n margin-bottom: 0;\n`\n\nconst ImgChef = styled.img`\n width: 15em;\n`\n\nexport default LoginPage;\n","import { useState, useContext } from \"react\";\nimport AuthContext from \"../context/AuthContext\";\n\nfunction Register() {\n const [username, setUsername] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [password2, setPassword2] = useState(\"\");\n const { registerUser } = useContext(AuthContext);\n\n const handleSubmit = async e => {\n e.preventDefault();\n registerUser(username, password, password2);\n };\n\n return (\n
\n
\n

Register

\n
\n
\n \n setUsername(e.target.value)}\n placeholder=\"Username\"\n required\n />\n
\n
\n \n setPassword(e.target.value)}\n placeholder=\"Password\"\n required\n />\n
\n
\n \n setPassword2(e.target.value)}\n placeholder=\"Confirm Password\"\n required\n />\n

{password2 !== password ? \"Passwords do not match\" : \"\"}

\n
\n \n
\n
\n );\n}\n\nexport default Register;\n","import axios from \"axios\";\nimport jwt_decode from \"jwt-decode\";\nimport dayjs from \"dayjs\";\nimport { useContext } from \"react\";\nimport AuthContext from \"../context/AuthContext\";\n\nif(process.env.NODE_ENV === 'production'){\n console.log('production')\n var locationHostSite = \"http://\"+window.location.hostname+\"/\"\n}else {\n console.log('dev')\n var locationHostSite = \"http://\"+window.location.hostname+\":8010/\"\n} \nconst baseURL = locationHostSite\n\nconst useAxios = () => {\n const { authTokens, setUser, setAuthTokens } = useContext(AuthContext);\n\n const axiosInstance = axios.create({\n baseURL,\n headers: { Authorization: `Bearer ${authTokens?.access}` }\n });\n\n axiosInstance.interceptors.request.use(async req => {\n const user = jwt_decode(authTokens.access);\n const isExpired = dayjs.unix(user.exp).diff(dayjs()) < 1;\n\n if (!isExpired) return req;\n\n const response = await axios.post(`${baseURL}/token/refresh/`, {\n refresh: authTokens.refresh\n });\n\n localStorage.setItem(\"authTokens\", JSON.stringify(response.data));\n\n setAuthTokens(response.data);\n setUser(jwt_decode(response.data.access));\n\n req.headers.Authorization = `Bearer ${response.data.access}`;\n return req;\n });\n\n return axiosInstance;\n};\n\nexport default useAxios;\n","import { useEffect, useState } from \"react\";\nimport useAxios from \"../utils/useAxios\";\n\nfunction ProtectedPage() {\n const [res, setRes] = useState(\"\");\n const api = useAxios();\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await api.get(\"/test/\");\n setRes(response.data.response);\n } catch {\n setRes(\"Something went wrong\");\n }\n };\n fetchData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
\n

Projected Page

\n

{res}

\n
\n );\n}\n\nexport default ProtectedPage;\n","import React from 'react';\n \nconst PageNotFound = () =>{\n return ( \n
\n

404 Error

\n

La page est introuvable.

\n
\n )\n \n}\n \nexport default PageNotFound;","import { useState, useContext } from \"react\";\nimport AuthContext from \"../context/AuthContext\";\nimport styled from \"styled-components\";\n\nexport default function Mentions() {\n const [username, setUsername] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [password2, setPassword2] = useState(\"\");\n const { registerUser } = useContext(AuthContext);\n\n const handleSubmit = async e => {\n e.preventDefault();\n registerUser(username, password, password2);\n };\n\n return (\n
\n
\n \n Mentions légales\n \n
\n Dénomination et siège social : \n

\n La petite charrue 13 rue principale 90150 VAUTHIERMONT
\n Siret: 45295260900017
\n RCS: Belfort B 452 952 609
\n

\n\n
\n Création-Conception du site : \n

\n Heidet Antoine\n

\n\n
\n Récépissé de déclaration : \n

\n Lorsqu’un site web diffuse ou collecte des données à caractère personnel, il doit être déclaré à la CNIL.
\n Toutefois, les sites web mis en oeuvre par des particuliers dans le cadre d’une activité exclusivement personnelle sont dispensés de déclaration.
\n A l’inverse, la diffusion et la collecte de données à caractère personnel à partir d’un site web dans le cadre d’activités professionnelles,
\n politiques ou associatives restent soumises à l’accomplissement des formalités prévues par la loi.
\n

\n\n
\n Mention relative à la rectification et à la suppression des données nominatives : \n

\n En application de la Loi n° 78-17 du 6 janvier 1978 relative à l'Informatique, aux Fichiers et aux Libertés, vous disposez des droits d'opposition (art. 26 de la loi),
\n d'accès (art.34 à 38 de la loi) et de rectification (art. 36 de la loi) des données vous concernant. Ainsi, vous pouvez exiger que soient rectifiées, complétées,
\n mises à jour ou effacées les informations vous concernant qui sont inexactes, incomplètes, équivoques, périmées ou dont la collecte ou l'utilisation,
\n la communication ou la conservation est interdite.
\n

\n\n
\n Hébergement : \n

\n OVH
\n RCS Lille Métropole 424 761 419 00045
\n Code APE 2620Z
\n N° TVA : FR 22 424 761 419
\n Siège social : 2 rue Kellermann - 59100 Roubaix - France
\n\n En application de la loi du 11 mars 1957 (art. 41) et du code de la propriété intellectuelle du 1er juillet 1992,
\n toute reproduction partielle ou totale à usage collectif est strictement interdite sans autorisation de l'éditeur du présent site.
\n Les logos, visuels et marques présents sur ce site sont la propriété de leur détenteur respectif.
\n Ce site peut, à son insu, avoir été relié à d'autres sites par le biais de liens hypertextes.
\n L'éditeur, ainsi que la Société La petite charrue déclinent toute responsabilité pour les informations présentées sur ces autres sites.
\n L'internaute reconnaît que l'utilisation du présent site est régie par le droit français.
\n

\n\n
\n
\n );\n}\n\n\nconst TitleMentions = styled.h1`\n color: #ff063b;\n text-align: center;\n font-family: Brush Script MT,Brush Script Std,cursive;\n`\n\nconst TitleInfos = styled.h3`\n color: #ff063b;\n text-align: center;\n font-family: Brush Script MT,Brush Script Std,cursive;\n`\n\nconst OvhTitle = styled.h2`\n color: #000e9c;\n text-align: center;\n font-family: Brush Script MT,Brush Script Std,cursive;\n`","import React from \"react\";\nimport {useState, useEffect, useContext} from 'react';\nimport styled from \"styled-components\";\nimport { Button } from 'reactstrap';\nimport { imageZoomEffect, TitleStyles } from \"../../components/ReusableStyles\";\nimport { BsArrowCounterclockwise, BsFillPencilFill } from \"react-icons/bs\";\nimport Produits from \"../Carte/Produits/Produits\";\n\n\nexport default function ThemesDays(props) {\n\n // const fakeDB = [\n // {id: 1, name: 'Menu Saint Valentin(midi et soir)', description: 'Le soir dîner aux chandelles \\r\\n Coupe fougerollaise et sa mise en bouche Assiette de foie gras \\r\\n Soufflé au saumon \\r\\n Filet de veau aux morilles et son accompagnement \\r\\n fromages comtois', price:'13.00'},\n // {id: 2, name: 'Le samedi 23 février 2019:midi et soir:Moules frites à volonté', description: 'Salade franc-comtoise en entrée , moules à volonté (marinières,curry,à l\\'ancienne,au bleu de Gex)', price:'13.00'}\n // ];\n\n return (\n
\n
\n \n {props.title}\n \n
\n \n
\n );\n}\n\n\nconst TitleGridProduct = styled.h1`\n color: #fc4958;\n font-family: Brush Script MT,Brush Script Std,cursive;\n`\n\nconst Products = styled(Produits)`\n${TitleStyles};\n.allproduct:first-child{\n display: none;\n}\nmargin-top: 1em!important;\n.products {\n justify-items: center;\n display: grid;\n grid-template-columns: repeat(1, 1fr);\n gap: 3rem;\n margin-top: 3rem;\n .product {\n text-align: center;\n padding-bottom: 3%;\n flex-direction: initial;\n gap: 5.6rem;\n justify-content: center;\n align-items: center;\n .product-infos {\n max-width: 60em;\n min-width: 60em;\n }\n \n h3 {\n color: #fc4958;\n }\n .plus{\n color:red;\n }\n p {\n // text-align: center;\n font-size: 1.1rem;\n line-height: 2rem;\n letter-spacing: 0.2rem;\n }\n ${imageZoomEffect};\n .image {\n max-height: 15rem;\n overflow: hidden;\n border-radius: 1rem;\n img {\n height: 15rem;\n width: 15rem;\n object-fit: cover;\n }\n }\n .see {\n border: none;\n padding: 1rem 4rem;\n font-size: 1.4rem;\n color: white;\n border-radius: 4rem;\n transition: 0.5s ease-in-out;\n cursor: pointer;\n background-color: #ff063b;\n text-transform: uppercase;\n &:hover {\n background: #f9c74f;\n }\n }\n }\n}\n\n@media screen and (min-width: 280px) and (max-width: 720px) {\n section{\n margin-top: 2em!important;\n }\n .products {\n grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\n text-align: center!important;\n }\n .product {\n display: inline-block!important;\n padding-left: initial!important;\n }\n .product-infos{\n max-width: 40em!important;\n min-width: initial!important;\n }\n img{\n margin-bottom: 2em;\n border-radius: 2em!important;\n }\n}\n\n@media screen and (min-width: 720px) and (max-width: 1080px) {\n section{\n margin-top: 2em!important;\n }\n .products {\n grid-template-columns: repeat(2, 1fr);\n text-align: center!important;\n }\n .product {\n display: inline-block!important;\n padding-left: initial!important;\n }\n .product-infos{\n max-width: 40em!important;\n min-width: initial!important;\n }\n img{\n margin-bottom: 2em;\n border-radius: 2em!important;\n }\n}\n`\n\nconst Section = styled.section`\n ${TitleStyles};\n margin-top: 1em!important;\n .products {\n justify-items: center;\n display: grid;\n grid-template-columns: repeat(1, 1fr);\n gap: 3rem;\n margin-top: 3rem;\n .product {\n text-align: center;\n padding-bottom: 3%;\n flex-direction: initial;\n gap: 5.6rem;\n justify-content: center;\n align-items: center;\n .product-infos {\n max-width: 60em;\n min-width: 60em;\n }\n \n h3 {\n color: #fc4958;\n }\n .plus{\n color:red;\n }\n p {\n // text-align: center;\n font-size: 1.1rem;\n line-height: 2rem;\n letter-spacing: 0.2rem;\n }\n ${imageZoomEffect};\n .image {\n max-height: 15rem;\n overflow: hidden;\n border-radius: 1rem;\n img {\n height: 15rem;\n width: 15rem;\n object-fit: cover;\n }\n }\n .see {\n border: none;\n padding: 1rem 4rem;\n font-size: 1.4rem;\n color: white;\n border-radius: 4rem;\n transition: 0.5s ease-in-out;\n cursor: pointer;\n background-color: #ff063b;\n text-transform: uppercase;\n &:hover {\n background: #f9c74f;\n }\n }\n }\n }\n\n @media screen and (min-width: 280px) and (max-width: 720px) {\n section{\n margin-top: 2em!important;\n }\n .products {\n grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\n text-align: center!important;\n }\n .product {\n display: inline-block!important;\n padding-left: initial!important;\n }\n .product-infos{\n max-width: 40em!important;\n min-width: initial!important;\n }\n img{\n margin-bottom: 2em;\n border-radius: 2em!important;\n }\n }\n \n @media screen and (min-width: 720px) and (max-width: 1080px) {\n section{\n margin-top: 2em!important;\n }\n .products {\n grid-template-columns: repeat(2, 1fr);\n text-align: center!important;\n }\n .product {\n display: inline-block!important;\n padding-left: initial!important;\n }\n .product-infos{\n max-width: 40em!important;\n min-width: initial!important;\n }\n img{\n margin-bottom: 2em;\n border-radius: 2em!important;\n }\n }\n`","import \"./index.css\";\nimport ReactDOM from 'react-dom'\nimport { BrowserRouter as Router, Route, Routes, Switch } from 'react-router-dom'\nimport React, { useRef } from 'react';\nimport Footer from \"./components/Footer\";\nimport Hero from \"./components/Hero\";\nimport Navbar from \"./components/Navbar\";\nimport Produits from \"./views/Carte/Produits/Produits\";\nimport ScrollToTop from \"./components/ScrollToTop\";\nimport Services from \"./views/Services/Services\";\nimport Service from \"./views/Service/Service\";\nimport Traiteur from \"./views/Traiteur/Traiteur\";\nimport PrivateRoute from \"./utils/PrivateRoute\";\nimport { AuthProvider } from \"./context/AuthContext\";\nimport Login from \"./views/loginPage\";\nimport Register from \"./views/registerPage\";\nimport ProtectedPage from \"./views/ProtectedPage\";\nimport PageNotFound from \"./views/Error/Error404\"\nimport Mentions from \"./views/Mentions\"\nimport DaysTheme from \"./views/DaysTheme/ThemeDays\"\nimport Maps from \"./views/Maps\"\nimport Modal from 'react-modal';\n\n\nconst App = () => {\n const [modalIsOpen, setModalIsOpen] = React.useState(true);\n\n const closeModal = () => {\n setModalIsOpen(false);\n };\n const modalStyles = {\n content: {\n width: '60%', \n margin: 'auto', \n maxHeight: '80vh', \n height:'80%', \n borderRadius: '1em'\n },\n };\n\n return (\n// ReactDOM.render(\n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n \n \n \n \n \n
\n \n \n {/* \n \n \n \n \n \n
\n \n */}\n \n \n \n \n \n
\n \n \n \n \n \n {/* */}\n
\n \n \n \n \n \n \n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n \n \n \n \n \n
\n {/* */}\n \n \n \n \n \n \n \n
\n {/* */}\n
\n {/* ... Vos routes et autres éléments ... */}\n {/* ... */}\n\n {/* Modal pour la fermeture temporaire */}\n {new Date() >= new Date('2023-08-21') && new Date() <= new Date('2023-09-09') && (\n \n
\n

Fermeture Temporaire

\n

Le restaurant sera fermé du Lundi 28 Août à 15heures, au Vendredi 8 Septembre

\n

Réouverture le Samedi 9 Septembre à Midi

\n

Et du Lundi 11 Septembre, au Mercredi 13 Septembre

\n

Réouverture le Jeudi 14 à Midi

\n\n

Merci de votre compréhension

\n

Votre restaurant La Petite Charrue

\n \n \n
\n
\n )}\n
\n \n \n \n \n \n \n
\n
\n );\n};\n // document.getElementById(\"root\")\n ReactDOM.render(, document.getElementById('root'));\n// );\n"],"sourceRoot":""}