/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* Home.tsx :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: sadjigui +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/06/09 08:19:04 by apommier #+# #+# */ /* Updated: 2023/06/23 22:11:28 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ // import { React, useState } from "react"; import '../styles/Profile.css' // import '../styles/App.css' import DefaultPicture from "../assets/profile.jpg"; import WinLoss from "../components/Profile/Win_Loss.tsx"; import { motion, AnimatePresence } from 'framer-motion' // import { AiFillEdit } from 'react-icons/ai' // import { GrClose } from 'react-icons/gr' 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 { Link } from "react-router-dom"; // import {UserProfile} from "../DataBase/DataUserProfile"; // import axios from "axios"; import api from '../script/axiosApi.tsx'; import { CgEditMarkup } from 'react-icons/cg' import { IoCloseCircleOutline } from "react-icons/io5"; // import * as React from 'react'; // import { useState, useEffect, useParams} from "react"; import React, { useState, useEffect, useRef, ChangeEventHandler } from "react"; import { useParams } from 'react-router-dom'; import {User, Conv} from "../../interfaces.tsx" import YellowAlert from '../components/Alert/YellowAlert.tsx'; // axios.get("http://localhost/api") // .then((response) => { // response = response.json() // response.then((result) => { // console.log(result) // console.log("ceci est un test") // }) // }) function Profile () { const [user, setUser] = useState(); const [isLoading, setIsLoading] = useState(true); const [modalOpen, setModalOpen] = useState(false); const [mine, setMine] = useState(false); const close = () => setModalOpen(false); const open = () => setModalOpen(true); const { username } = useParams(); // const [selectedPhoto, setSelectedPhoto] = useState(); // const [selectedPhoto, setSelectedPhoto] = useState(null); const [profilePicture, setProfilePicture] = useState(''); const handleFileChange = async (event: { target: { files: any; }; }) => { // const files = event.target.files; // if (files && files.length > 0) { const photo = (event.target.files[0]); console.log("file selected") if (photo) { console.log("selected photo") const formData = new FormData(); formData.append('photo', photo); try { await api.post('/picture', formData); console.log('File uploaded successfully'); window.location.reload(); } catch (error) { console.error('Error uploading file:', error); } } // } }; useEffect(()=> { const getUser = async ()=>{ console.log(`username= ${username}`) // const pic 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? // username = me.data.username } else { const tmpUser = await api.post("/user", {username: username}) setUser(tmpUser.data); pic = await api.post("/getPicture", {username: username}) //good one? } // const pic = await api.get("/picture")//pic du user setProfilePicture(pic.data); // console.log(`user= ${tmpUser.data.username}`) setIsLoading(false) } catch(err){ console.log(err); } }; getUser(); }, []) return (
{/* Profile pic */} {profilePicture ? ( ) : ( Default Profile Picture )} {isLoading || !user ? (

Loading...

) : (

{user.nickname}

)}
{mine ? (
(modalOpen ? close() : open())}> {modalOpen === true ? : } {modalOpen === true ? ("") : ( <> )} {/*
*/} {/* */} {/* */} {/*
*/}
) : ( <> )} 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); } // const tmpUser = await api.get("/profile"); // 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