/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* Home.tsx :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/06/09 08:19:04 by apommier #+# #+# */ /* Updated: 2023/06/26 11:31:57 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ import '../styles/Profile.css' import RedAlert from "../components/Alert/RedAlert.tsx"; import DefaultPicture from "../assets/profile.jpg"; import WinLoss from "../components/Profile/Win_Loss.tsx"; import { motion, AnimatePresence } from 'framer-motion' import { Link } from "react-router-dom"; import ModalEdit from "../components/Profile/EditName.tsx"; import {AiOutlineCloseCircle, AiOutlineHistory} from 'react-icons/ai' import { MdQrCodeScanner, MdOutlinePhotoLibrary } from 'react-icons/md'; import { GiWingedSword, GiCrownedSkull } from 'react-icons/gi'; import api from '../script/axiosApi.tsx'; import { CgEditMarkup } from 'react-icons/cg' import { IoCloseCircleOutline } from "react-icons/io5"; import React, { useState, useEffect } from "react"; import { useParams } from 'react-router-dom'; import {User} from "../../interfaces.tsx" import YellowAlert from '../components/Alert/YellowAlert.tsx'; function Profile () { const [user, setUser] = useState(); const [isLoading, setIsLoading] = useState(true); const [modalOpen, setModalOpen] = useState(false); const [mine, setMine] = useState(false); const [error, setError] = useState(false); const close = () => setModalOpen(false); const closeError = () => setError(false); const open = () => setModalOpen(true); const { username } = useParams(); const [profilePicture, setProfilePicture] = useState(''); const handleFileChange = async (event: { target: { files: any; }; }) => { const photo = (event.target.files[0]); if (photo) { const formData = new FormData(); formData.append('photo', photo); try { await api.post('/picture', formData); window.location.reload(); } catch (error) { setError(true); console.error('Error uploading file:', error); } } }; useEffect(()=> { const getUser = async ()=>{ console.log(`username= ${username}`) let pic; try{ console.log("before request") const me = await api.get("/profile") if (!username) { setMine(true); setUser(me.data); console.log(`mine= true = ${mine}`) pic = await api.post("/getPicture", {username: me.data.username}) //good one? } else { const tmpUser = await api.post("/user", {username: username}) setUser(tmpUser.data); pic = await api.post("/getPicture", {username: username}) //good one? } setProfilePicture(pic.data); setIsLoading(false) } catch(err){ console.log(err); } }; getUser(); }, []) return (
{profilePicture ? ( ) : ( Default Profile Picture )} {isLoading || !user ? (

Loading...

) : (

{user.nickname}

)}
{mine ? (
(modalOpen ? close() : open())}> {modalOpen === true ? : } {modalOpen === true ? ("") : ( <> null}> {error ? ( ): ("")} )}
) : ( <> )} null}> {modalOpen && }
) } function Home () { const [move, setmove ] = useState(false); const [user, setUser] = useState(); const [successQr, setSuccessQr] = useState(false); const [successSword, setSuccessSword] = useState(false); const [successCrown, setSuccessCrown] = useState(false); const closeQr = () => setSuccessQr(false); const closeSword = () => setSuccessSword(false); const closeCrown = () => setSuccessCrown(false); const { username } = useParams(); useEffect(() => { const fetchSuccess = async () => { try { if (!username) { const tmpUser = await api.get("/profile"); setUser(tmpUser.data); } else { const tmpUser = await api.post("/user", {username: username}); setUser(tmpUser.data); } } catch (error) { console.log(error); } }; fetchSuccess(); }, []); return (
{user && user.otp_verified ? ( setSuccessQr(true)}/> ):("")} {user && user.win >= 2 ? ( setSuccessSword(true)}/> ):("")} {user && user.win >= 5 ? ( setSuccessCrown(true)}/> ):("")}
setmove(!move)}> {move ? ():()} Match History null}> {successQr ? ( ) : ("")} {successCrown ? ( ) : ("")} {successSword ? ( ) : ("")}
) } export default Home