From 6d8899c7deeb7d1e6ae1ccbc63ff33fa72fb6ab3 Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Tue, 9 Dec 2025 09:40:20 +0100 Subject: [PATCH] Create settings modal --- public/icons/settings-wheel.svg | 4 ++ .../SettingsModal/SettingsModal.jsx | 41 +++++++++++++++++++ .../SettingsModal/SettingsModal.module.css | 18 ++++++++ src/components/ui/modal/modal.module.css | 2 +- src/pages/Profile/ProfilePage.jsx | 19 ++------- src/pages/Profile/ProfilePage.module.css | 14 +++---- 6 files changed, 72 insertions(+), 26 deletions(-) create mode 100644 public/icons/settings-wheel.svg create mode 100644 src/components/SettingsModal/SettingsModal.jsx create mode 100644 src/components/SettingsModal/SettingsModal.module.css diff --git a/public/icons/settings-wheel.svg b/public/icons/settings-wheel.svg new file mode 100644 index 0000000..9a4e19b --- /dev/null +++ b/public/icons/settings-wheel.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/components/SettingsModal/SettingsModal.jsx b/src/components/SettingsModal/SettingsModal.jsx new file mode 100644 index 0000000..8b78d86 --- /dev/null +++ b/src/components/SettingsModal/SettingsModal.jsx @@ -0,0 +1,41 @@ +import Modal from "../ui/modal/modal.jsx"; +import Button from "../ui/button/button.jsx"; +import styles from "./SettingsModal.module.css" +import { useContext, useState } from "react"; +import ThemeSwitcher from "../ui/themeSwitcher/ThemeSwitcher.jsx"; +import { AuthContext } from "../../contexts/auth/AuthContext.js"; + + +export default function SettingsModal() { + + const [open, setOpen] = useState(false); + + const { logout } = useContext(AuthContext); + + const handleLogout = () => { + logout(); + } + + return ( + <> + + + setOpen(false)}> +
+ +
+

Compte

+ +
+ +
+

Apparence

+ +
+
+
+ + ) +} \ No newline at end of file diff --git a/src/components/SettingsModal/SettingsModal.module.css b/src/components/SettingsModal/SettingsModal.module.css new file mode 100644 index 0000000..d9d27ff --- /dev/null +++ b/src/components/SettingsModal/SettingsModal.module.css @@ -0,0 +1,18 @@ +.content { + width: 100%; + padding: 20px; + display: flex; + flex-direction: column; +} + +.modifyIcon { + height: 30px; + width: 30px; +} + +.section { + display: flex; + flex-direction: column; + gap: 10px; + margin-bottom: 30px; +} \ No newline at end of file diff --git a/src/components/ui/modal/modal.module.css b/src/components/ui/modal/modal.module.css index 76b108a..faf857f 100644 --- a/src/components/ui/modal/modal.module.css +++ b/src/components/ui/modal/modal.module.css @@ -18,7 +18,7 @@ max-width: 70%; position: relative; box-shadow: 0 4px 15px rgba(0,0,0,0.2); - width: fit-content; + width: clamp(300px, 50vw, 600px); border: 1px solid rgba(200, 200, 200, 0.3); background: rgba(255, 255, 255, 0.5); backdrop-filter: blur(10px); diff --git a/src/pages/Profile/ProfilePage.jsx b/src/pages/Profile/ProfilePage.jsx index 0271d42..aaa1338 100644 --- a/src/pages/Profile/ProfilePage.jsx +++ b/src/pages/Profile/ProfilePage.jsx @@ -3,18 +3,11 @@ import styles from "./ProfilePage.module.css"; import { AuthContext } from "../../contexts/auth/AuthContext.js"; import formatDate from "../../utils/date/formatDate.js"; import Task from "../../components/Task/Task"; -import Button from "../../components/ui/button/button.jsx"; -import { useNavigate } from "react-router"; -import ThemeSwitcher from "../../components/ui/themeSwitcher/ThemeSwitcher.jsx"; +import SettingsModal from "../../components/SettingsModal/SettingsModal.jsx"; function ProfilePage() { - const { user, logout } = useContext(AuthContext); - const navigate = useNavigate(); - - const handleLogout = () => { - logout(); - } + const { user } = useContext(AuthContext); return (
@@ -30,10 +23,6 @@ function ProfilePage() {

{user.name} {user.lastname}

-
- - -
@@ -44,9 +33,7 @@ function ProfilePage() {

Mail : {user.email}

Téléphone : {user.phone}

- +

Vos Événements :

diff --git a/src/pages/Profile/ProfilePage.module.css b/src/pages/Profile/ProfilePage.module.css index e4e467b..1e7913f 100644 --- a/src/pages/Profile/ProfilePage.module.css +++ b/src/pages/Profile/ProfilePage.module.css @@ -38,10 +38,11 @@ } .topDescription { - display: flex; - flex-direction: column; - gap: 10px; - margin-bottom: 15px; + display: flex; + flex-direction: column; + align-items: center; + gap: 10px; + margin-bottom: 15px; } .infoBlock { @@ -122,11 +123,6 @@ } -.modifyIcon { - height:50px; - width:50px; -} - .headerProfile { display: flex; flex-direction: row;