From ab3e81d020ca9809cc5972a46de5965f357b7965 Mon Sep 17 00:00:00 2001 From: Bilal Dieumegard Date: Mon, 9 Dec 2024 21:51:56 +0100 Subject: [PATCH] Ajout de la modification des user avec photo de profil etc et des informations de profil dans les messages --- src/lib/components/Message.svelte | 36 +++++---- src/lib/components/ui/ChoosePicture.svelte | 85 ++++++++++++---------- src/lib/components/ui/ProfileCard.svelte | 27 +++++-- src/lib/components/ui/ProfileInfo.svelte | 38 ++++++++-- src/routes/chats/[id]/+page.svelte | 13 +++- src/routes/user/edit/+page.server.ts | 23 ++++++ src/routes/user/edit/+page.svelte | 61 ++++++++-------- 7 files changed, 186 insertions(+), 97 deletions(-) create mode 100644 src/routes/user/edit/+page.server.ts diff --git a/src/lib/components/Message.svelte b/src/lib/components/Message.svelte index ab70326..e4466c2 100644 --- a/src/lib/components/Message.svelte +++ b/src/lib/components/Message.svelte @@ -6,19 +6,19 @@ export let myMessage: boolean; // Si c'est le message de l'utilisateur courant - export let user = null; // Infos utilisateur - export let messageContent = ""; // Contenu du message - export let createdAt = new Date(); // Date de création du message + export let message = null; // Contenu du message let defaultProfilePicture = "/images/default-profile.png"; - let showProfileInfo = false; // Contrôle la visibilité des informations de profil + + export let setActiveProfile; + export let activeProfileId = null; // Temps écoulé (calculé périodiquement) let timeElapsed: string; // Fonction pour mettre à jour le temps écoulé const updateElapsed = () => { - timeElapsed = formatDistanceToNow(createdAt); + timeElapsed = formatDistanceToNow(message.createdAt); }; // Initialisation de l'intervalle @@ -30,6 +30,17 @@ clearInterval(interval); // Nettoyage lors du démontage }; }); + + function toggleProfileInfo() { + if (activeProfileId === message.id) { + // Si le profil cliqué est déjà actif, le fermer + setActiveProfile(null); + } else { + // Sinon, afficher ce profil et masquer les autres + setActiveProfile(message.id); + } + } + @@ -45,25 +56,24 @@
(showProfileInfo = true)} - on:mouseleave={() => (showProfileInfo = false)} + on:click={toggleProfileInfo} > Profile Picture - +
- {myMessage ? "(Moi)" : ""} {user.username} + {myMessage ? "(Moi)" : ""} {message.user.username}
@@ -71,7 +81,7 @@ -

{messageContent}

+

{message.text}

diff --git a/src/lib/components/ui/ChoosePicture.svelte b/src/lib/components/ui/ChoosePicture.svelte index ede5fcd..4e08285 100644 --- a/src/lib/components/ui/ChoosePicture.svelte +++ b/src/lib/components/ui/ChoosePicture.svelte @@ -1,21 +1,62 @@ + +
+ + Image de profil + + + + +
+ + +
+
+ - - -
- - Image de profil - - - - -
- - -
-
diff --git a/src/lib/components/ui/ProfileCard.svelte b/src/lib/components/ui/ProfileCard.svelte index 3ac987f..8475786 100644 --- a/src/lib/components/ui/ProfileCard.svelte +++ b/src/lib/components/ui/ProfileCard.svelte @@ -23,18 +23,29 @@ console.error('Erreur lors de la déconnexion:', error); } }; + + const editProfile = () => { + window.location.href = '/user/edit'; + }; {#if show}