diff --git a/src/locales/en.json b/src/locales/en.json index 78cd32d..40e7c8e 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -78,10 +78,13 @@ "ago": "ago" }, "personnalinformation": { - "basicinformation": "Basic information", + "informations": "Informations", "title": "Personal information", "profilepicture": "Profile picture", - "name": "Name", + "fullname": "Name", + "firstname": "Firstname", + "lastname": "Lastname", + "alias": "Alias", "dob": "Date of birth", "gender": "Gender", "contactdetails": "Contact details", diff --git a/src/locales/fr.json b/src/locales/fr.json index 3cc2998..be50f22 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -78,10 +78,13 @@ "ago": "" }, "personnalinformation": { - "basicinformation": "Information de base", + "informations": "Informations", "title": "Informations personnelles", "profilepicture": "Photo de profil", - "name": "Nom", + "fullname": "Nom", + "firstname": "Prénom", + "lastname": "Nom", + "alias": "Pseudonyme", "dob": "Date de naissance", "gender": "Genre", "contactdetails": "Coordonnées", diff --git a/src/stores/userStore.js b/src/stores/userStore.js index d481f32..359f550 100644 --- a/src/stores/userStore.js +++ b/src/stores/userStore.js @@ -13,6 +13,7 @@ export const useUserStore = defineStore( async (newValue) => { if (newValue) { await fetchCurrentUserProfile() + await fetchCurrentCreatorProfile() } else { user.value = undefined creator.value = undefined @@ -31,10 +32,25 @@ export const useUserStore = defineStore( const hasCreator = computed(() => creator.value && Object.getOwnPropertyNames(creator.value).length >= 1) - + + const fullname = computed(() => { + if (user.value) { + const {firstname, lastname} = user.value; + + if (firstname && lastname) { + return `${lastname}, ${firstname}`; + } else if (firstname) { + return firstname; + } else if (lastname) { + return lastname; + } + } + return 'n/a'; + }) + const alias = computed(() => { if (user.value) { - return user.value.alias || `${user.value.firstName || ''} ${user.value.lastName || ''}`.trim() || 'Anonyme' + return user.value.alias || `${user.value.firstname || ''} ${user.value.lastname || ''}`.trim() || 'Anonyme' } return 'Anonyme'; }) @@ -44,24 +60,120 @@ export const useUserStore = defineStore( : '/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png' }) + const client = useClient() + async function fetchCurrentUserProfile() { try { - const client = useClient() - const userResponse = await client.get("/api/GetMyUser"); + const userResponse = await client.get("/api/users/profile"); user.value = userResponse.data - - try { - const creatorId = userResponse.data.id - const creatorResponse = await client.get(`/api/creators/${creatorId}`) - creator.value = creatorResponse.data - } catch (error) { - creator.value = undefined - } } catch (error) { user.value = undefined; + } + } + + async function fetchCurrentCreatorProfile() { + try { + const creatorResponse = await client.get(`/api/creators/profile`) + creator.value = creatorResponse.data + } catch (error) { creator.value = undefined } } - return {user, creator, alias, hasCreator, portraitUrl, fetchCurrentUserProfile} + async function changeFullname(firstname, lastname) { + try { + await client.post( + `/api/users/fullname`, + { + firstname: firstname, + lastname: lastname + }) + user.value.firstname = firstname; + user.value.lastname = lastname; + } catch (error) { + console.error(error) + } + } + + async function changeAlias(alias) { + try { + await client.post( + `/api/users/alias`, + { + alias: alias + }) + user.value.alias = alias; + } catch (error) { + console.error(error) + } + } + + async function changeBirthday(birthdate) { + try { + await client.post( + `/api/users/birthdate`, + { + birthdate: birthdate + }) + user.value.birthDate = birthdate; + } catch (error) { + console.error(error) + } + } + + async function changePhone(phoneNumber) { + try { + await client.post( + `/api/users/phone`, + { + phoneNumber: phoneNumber + }) + user.value.phoneNumber = phoneNumber; + } catch (error) { + console.error(error) + } + } + + async function changeEmail(email) { + try { + await client.post( + `/api/users/email`, + { + email: email + }) + user.value.email = email; + } catch (error) { + console.error(error) + } + } + + async function changeAddress(address) { + try { + await client.post( + `/api/users/address`, + { + address: address + }) + user.value.address = address; + } catch (error) { + console.error(error) + } + } + + return { + user, + creator, + alias, + hasCreator, + fullname, + portraitUrl, + changeFullname, + changeAlias, + changeBirthday, + changePhone, + changeEmail, + changeAddress, + fetchCurrentUserProfile, + fetchCurrentCreatorProfile + } }) diff --git a/src/views/main/Header.vue b/src/views/main/Header.vue index 1435909..11f0e5f 100644 --- a/src/views/main/Header.vue +++ b/src/views/main/Header.vue @@ -15,7 +15,7 @@ alt="Hutopy Logo" class="w-10" > -
ALPHA
+
ALPHA
diff --git a/src/views/profile/ProfilePage.vue b/src/views/profile/ProfilePage.vue index 29ea3e3..27547bf 100644 --- a/src/views/profile/ProfilePage.vue +++ b/src/views/profile/ProfilePage.vue @@ -27,7 +27,7 @@ {{ $t('profilemenu.creator') }} - + mdi-information {{ $t('profilemenu.user') }} @@ -61,8 +61,8 @@ -