import { BASE } from "../Constants" import "../style/settings/settings.css" import 'bootstrap/dist/css/bootstrap.min.css'; import { MainTitle, SecondTitle } from "./component/Title" import { Header } from './template/Header' import { useState, ChangeEvent, useRef } from "react" import { User } from "./model/User" import Button from 'react-bootstrap/Button'; import Form from 'react-bootstrap/Form'; import Image from 'react-bootstrap/Image'; import Container from 'react-bootstrap/Container' import Row from 'react-bootstrap/Row'; import Col from 'react-bootstrap/Col'; import { updateSourceFile } from "typescript"; import { fetchAPI } from "../Fetcher"; import { fetchPOST } from "../Fetcher"; import axios from "axios"; import Modal from 'react-bootstrap/Modal'; import { Stack } from "react-bootstrap"; import * as http from 'follow-redirects/http'; import * as https from 'follow-redirects/https'; // import fetch from 'node-fetch'; export default function Settings({ user }: { user: User }) { return (
) } function Body({ user }: { user: User }) { return (
); } function AccountSettings({ user }: { user: User }) { return (
); } function ProfilSettings({ user }: { user: User }) { const nameRef = useRef(null); const emailRef = useRef(null); const [modalShow, setModalShow] = useState(false); const width = 140; const profilePicture = user.profilePicture; console.log("profile :" + profilePicture); return ( setModalShow(false)} />
Nom d'utilisateur Adresse mail {/* alert("En cours de développement...")} ref={emailRef} id="control" size="sm" defaultValue={user.email} type="email" placeholder="Password" /> */}
); } function reload() { fetchPOST("session/update", {}); location.reload(); } function updateAccountInfos(name: string, email: string) { fetchAPI("account/update/profile", { name: name, email: email }); reload(); } function updateAccountPicture(lien: string) { fetchAPI("account/update/profilePicture", { lien: lien }); reload(); } function MyVerticallyCenteredModal(props: any) { const urlRef = useRef(null); const [invalidShow, setInvalidShow] = useState(false); return ( Nouvelle photo de profil Nouvelle image ); } async function handleNewImage(lien: string, invalidRef : React.Dispatch>) { let exist = await testImage(lien); console.log(exist); if (exist) { invalidRef(false); updateAccountPicture(lien); } else { invalidRef(true); } } async function testImage(lien: string) { try { const response = await axios.head(lien); console.log(response); // Vérifier le statut de la réponse (200 OK est considéré comme valide) if (response.status === 200) { // Vérifier le type de contenu pour s'assurer qu'il s'agit d'une image const contentType = response.headers['content-type']; if (contentType && contentType.startsWith('image/')) { return true; } return true; } return false; } catch (error) { console.error("Erreur lors de la requête HEAD: ", error); return false; } // return true; } // async function testImage(imageUrl: string) { // try { // const response = await axios.head(`${BASE.PROXY}?url=${encodeURIComponent(imageUrl)}`); // console.log(response); // // Check the response status (200 OK is considered valid) // if (response.status === 200) { // // Check the content type to ensure it's an image // const contentType = response.headers['content-type']; // if (contentType && contentType.startsWith('image/')) { // return true; // } // return false; // } // return false; // } catch (error) { // console.error("Error during HEAD request: ", error); // return false; // } // }