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 { fetchAPI } from "../Fetcher"; import { fetchPOST } from "../Fetcher"; import axios from "axios"; import Modal from 'react-bootstrap/Modal'; import { Stack } from "react-bootstrap"; 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 = 150; const profilePicture = user.profilePicture; return (
setModalShow(false)} />
Nom d'utilisateur Adresse mail
); } 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); if (exist) { invalidRef(false); updateAccountPicture(lien); } else { invalidRef(true); } } async function testImage(lien: string) { try { const response = await axios.head(lien); if (response.status === 200) { 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; } }