/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* Home.tsx :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: sadjigui +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/06/09 08:19:04 by apommier #+# #+# */ /* Updated: 2023/06/24 14:31:22 by sadjigui ### ########.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 = (event: { target: { files: React.SetStateAction[]; }; }) => { // // const file = event.target.files[0]; // setSelectedPhoto(event.target.files[0]); // // try{ // // api.post("/picture", {picture: URL.createObjectURL(file)}) // // } // // catch(err){ // // console.log(err); // // } // }; // const handleFileChange = (event: { target: { files: React.SetStateAction[] | FileList; }; }) => { // const files = event.target.files; // if (event.target.files && event.target.files.length > 0) { // setSelectedPhoto(event.target.files[0]); // } // }; 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); } } // } }; // const handleUpload = async () => { // const formData = new FormData(); // formData.append('photo', selectedPhoto); // try { // await api.post('/picture', formData); // console.log('File uploaded successfully'); // window.location.reload(); // } catch (error) { // console.error('Error uploading file:', error); // } // }; // const handleUpload = async (event: React.FormEvent) => { // event.preventDefault() // console.log("up photo") // if (selectedPhoto) { // console.log("selected photo") // const formData = new FormData(); // formData.append('photo', selectedPhoto); // try { // await api.post('/picture', formData); // console.log('File uploaded successfully'); // window.location.reload(); // } catch (error) { // console.error('Error uploading file:', error); // } // } else { // console.log('No file selected'); // } // }; useEffect(()=> { const getUser = async ()=>{ console.log(`username= ${username}`) // const pic let pic try{ 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); useEffect(() => { const fetchSuccess = async () => { try { const tmpUser = await api.get("/profile"); setUser(tmpUser.data); } catch (error) { console.log(error); } }; fetchSuccess(); },[]) return (
{user.otp_verified ? ( setSuccessQr(true)}/> ):("")} {user.win >= 2 ? ( setSuccessSword(true)}/> ):("")} {user.win >= 5 ? ( setSuccessCrown(true)}/> ):("")}
setmove(!move)}> {move ? ():()} Match History null}> {successQr ? ( ) : ("")} {successCrown ? ( ) : ("")} {successSword ? ( ) : ("")}
) } export default Home