From af53cb2b02807686587ab2d1a70d0acdeea3c2a4 Mon Sep 17 00:00:00 2001 From: Laurian Dufrechou Date: Mon, 20 Mar 2023 16:27:24 +0100 Subject: [PATCH] ajout carousel + login + readUser --- public/401446.webp | Bin 0 -> 7110 bytes public/61.jpg | Bin 0 -> 6236 bytes src/components/CardUser.jsx | 29 +++++++++ src/components/Carousel.jsx | 104 +++++++++++++++++++++++++++++++++ src/pages/api/user/readUser.ts | 17 +++++- src/pages/login.jsx | 24 ++++++-- src/pages/test_card.jsx | 23 ++++++++ 7 files changed, 191 insertions(+), 6 deletions(-) create mode 100644 public/401446.webp create mode 100644 public/61.jpg create mode 100644 src/components/CardUser.jsx create mode 100644 src/components/Carousel.jsx create mode 100644 src/pages/test_card.jsx diff --git a/public/401446.webp b/public/401446.webp new file mode 100644 index 0000000000000000000000000000000000000000..594325ff3a8ad7b16fbaca00b94b36d6b723ab12 GIT binary patch literal 7110 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
;@9Q%ClqZ zIt6Z;-SzH4A8m?5Wo7q79IWT|ozRuk&DVl8ng({`38lNCf45e@;?gYH2Y|SSBO|_Q z2y~(fd0Os>IM2`HA^9Oi!AHfSthiuJ&hI)-_%>Ot2G1R+S~@_kUn?z;{qX5+nG zjZvQ;n$Kj%*&CpAU|?3GL6Ek1Bn`nA8LKAOVLsWcnF0hy0Vlu7KHIMALmjfSY3~{p z*yP^l&XpdNKSU%f&y~?d)H6z3dz%PoVGqDR&jcBvl8ZE*g#&z(qNK1*J1Za;M8pmw zU|sc0C#ZUF@LWcCay{&u&G&UV`OP!kM|gOCA)gTP#t14Zpkt=#E-uRDB-^LI5O-*pFtcc9F`b;^omI5mF2+-dph0Tl=oR=R!*CY3Cea60 zpreedkCS^CiE*^$p)A_NnsbAOCHImmk-kTeinJB?eF7tK#Qn6uvgvFKgYU21)=Ig7 z@@kQtUkf=A16S#?yt>|33>t7)gT;H$^fMl%B^O))6X$nOMGf7=#IsS}`QB==>-~*D zf;RBuk8Zx*g{8OB#e?#;6e6g|I&3{9e-o7-w zAfL{xs*LAPT|~*PO0)}LA!ZIF5vFFQ9<6a=HzVG&I~lpoBf`*!WE}uLw)Pk^ zi#iUKvBiv=*T+2S0H;#{_IUN?dLruJLWL-cUuCrVea^U2juhbOrh%VLCPZG2>g?m> zkh1-qgu-(9g$d4Xrd^HzZ>PLGg*8_UHp|P4?SJBodV3OMPwb;z zvUHQ^6k#63E90ee0@g-(4M(!|UyK;CPn?eilLinCOGp&(1Jl?`{AIxLAqG z-Re&S^74!&&k7n-CWP^$*vY^`jV!9*buGEjL%U1qaVm~B>zyL2 z+Z%Isl_@fYy^+7kx|i8nC&f_)eKPgrB9%YpGu&2e@}m=p4`ViybL@X!FX$e8TD42< zF+gl4ygfx%5bY?#Kb?=GlvduW)4aNb*2sJa-?+;Vu_eR_pxYh`raH|HX{NSV11=qR zI3#s1U|8T;e@b2H2%*&%AWH4Q$U&#OjbVmvxb4V5-z!K)JPXOk&}}#aQTRSs!@9M& zW>;5*ihs__$*4vlp@_5#54YrK21OeyzRtSLp`rT}L_v)6sINP>sCg!In zjsOVHzlDFMB=4P^Oi;)0}J7^pE2AZr5h!A2>uK;4CX)@dguZH<1u0emcswT!=VrgCW@-9N3=j-hgm%GRcW@=wYx$Q|YOJ=Bw(*;(>>JWBIs<16?a3RYb zvY;aUX8pFaidu~*>Ekjjl)R&xBMNW+hlkqib1<^8w*v|uU23|GN!J7NvM>2xw&xY$ z$Ko6&CjdZ3UqQCz-_1+L+s+yQP*7m`&jkz-fCB>ufcfYDZ1TEG%oD_&)bE=|0n+s_@9#h_x>;E|4l>yARY+-|Igv#;pT!#_&*Kvj{wO2ug}fJ d1(W@M#P@dq05<#oh~)n;aR1eQ|BL)r{{yGFig^G4 literal 0 HcmV?d00001 diff --git a/public/61.jpg b/public/61.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2481114b79c2fe1e3bd966d2a4d9a576a809ade1 GIT binary patch literal 6236 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 UU_!l7go5WO3Q@7W8GJeWKcBdB&;S4c literal 0 HcmV?d00001 diff --git a/src/components/CardUser.jsx b/src/components/CardUser.jsx new file mode 100644 index 0000000..f4b369b --- /dev/null +++ b/src/components/CardUser.jsx @@ -0,0 +1,29 @@ +import { CardBody, Card, Image, Flex, Box } from "@chakra-ui/react"; +import Carousel from "./Carousel"; + +export default function CardUser(props){ + const {user} = props; + // const data_user = props; + const borderRad = "1.5rem"; + + return ( + + + + + + + + + ); + +} \ No newline at end of file diff --git a/src/components/Carousel.jsx b/src/components/Carousel.jsx new file mode 100644 index 0000000..ec88f49 --- /dev/null +++ b/src/components/Carousel.jsx @@ -0,0 +1,104 @@ +import React from 'react'; +import { Box, IconButton, useBreakpointValue } from '@chakra-ui/react'; +// Here we have used react-icons package for the icons +import { BiLeftArrowAlt, BiRightArrowAlt } from 'react-icons/bi'; +// And react-slick as our Carousel Lib +import Slider from 'react-slick'; + +// Settings for the slider +const settings = { + dots: true, + arrows: false, + fade: true, + infinite: true, + autoplay: true, + speed: 500, + autoplaySpeed: 5000, + slidesToShow: 1, + slidesToScroll: 1, +}; + +export default function Carousel(props) { + + + const { height, borderRadiusImg } = props; + // As we have used custom buttons, we need a reference variable to + // change the state + const [slider, setSlider] = React.useState(); + + // These are the breakpoints which changes the position of the + // buttons as the screen size changes + const top = useBreakpointValue({ base: '90%', md: '50%' }); + const side = useBreakpointValue({ base: '30%', md: '10px' }); + + // These are the images used in the slide +// const cards = [ +// 'https://images.unsplash.com/photo-1612852098516-55d01c75769a?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1yZWxhdGVkfDR8fHxlbnwwfHx8fA%3D%3D&auto=format&fit=crop&w=900&q=60', +// 'https://images.unsplash.com/photo-1627875764093-315831ac12f7?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1yZWxhdGVkfDJ8fHxlbnwwfHx8fA%3D%3D&auto=format&fit=crop&w=900&q=60', +// 'https://images.unsplash.com/photo-1571432248690-7fd6980a1ae2?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1yZWxhdGVkfDl8fHxlbnwwfHx8fA%3D%3D&auto=format&fit=crop&w=900&q=60', +// ]; + + const cards = props.images; + + return ( + + {/* CSS files for react-slick */} + + + {/* Left Icon */} + slider?.slickPrev()}> + + + {/* Right Icon */} + slider?.slickNext()}> + + + {/* Slider */} + setSlider(slider)}> + {cards.map((url, index) => ( + + ))} + + + ); +} \ No newline at end of file diff --git a/src/pages/api/user/readUser.ts b/src/pages/api/user/readUser.ts index 69b6de7..1651166 100644 --- a/src/pages/api/user/readUser.ts +++ b/src/pages/api/user/readUser.ts @@ -4,7 +4,20 @@ import { PrismaClient } from '@prisma/client' export const prisma = new PrismaClient(); export default async function readUser(req: NextApiRequest, res: NextApiResponse) { - const users = await prisma.user.findMany() + + const {email, password} = req.query + + if(!email) { + const users = await prisma.user.findMany() + return res.status(200).send({message: "readUser", users}); + } + + const user = await prisma.user.findUnique({where :{"email" : email}}) + + if (user?.password == password) { + res.status(200).send({message: "User found", user}); + } + + res.status(400).send({message: "Mot de passe incorrect"}); - return res.status(200).send({message: "readUser", users}); } \ No newline at end of file diff --git a/src/pages/login.jsx b/src/pages/login.jsx index 4a48428..161f49d 100644 --- a/src/pages/login.jsx +++ b/src/pages/login.jsx @@ -22,8 +22,24 @@ export default function Login() { const router = useRouter(); const onLogin = async (values) => { - alert(JSON.stringify(values, null, 2)); - // faut voir ce qu'on fait quand on se connecte + try { + const response = await fetch(`/api/user/?email=${values.email}&password=${values.password}`, { + method: "GET", + headers: { + "Content-Type": "application/json" + } + }); + const data = await response.json(); + if (data.error) { + alert(data.message); + } else { + console.log(data); + alert("connexion réussie"); + // router.push("/"); + } + } catch (error) { + console.log(error); + } }; const redirect_home = () => { @@ -55,10 +71,10 @@ export default function Login() { Mot de passe diff --git a/src/pages/test_card.jsx b/src/pages/test_card.jsx new file mode 100644 index 0000000..10baacc --- /dev/null +++ b/src/pages/test_card.jsx @@ -0,0 +1,23 @@ +import CardUser from "../components/CardUser"; + +export default function Test_card(){ + + const user = { + name: "dujardin", + surname: "jean", + age:19, + aPropos: "Je suis une personne fictive, pas tres fictive", + images: [ + "401446.webp" + ], + passions : [ + "Sport", + "Piscine", + "Formule1", + ] + } + + return( + + ) +} \ No newline at end of file