From 852ea6367285fffde2ca20f55997085dcf14ce1a Mon Sep 17 00:00:00 2001 From: Jonathan Bourdon Date: Mon, 10 Feb 2025 13:24:14 -0500 Subject: [PATCH] Fix client-side errors --- frontend/src/main.js | 2 -- frontend/src/stores/creatorProfileStore.js | 6 ++--- frontend/src/views/creators/ActualBanner.vue | 2 +- frontend/src/views/creators/BannerActions.vue | 23 ++++++++++++------- frontend/src/views/creators/CreateCreator.vue | 4 +--- frontend/src/views/creators/CreatorHome.vue | 2 ++ frontend/src/views/creators/CreatorLogo.vue | 4 +--- frontend/vite.config.js | 5 ++++ 8 files changed, 28 insertions(+), 20 deletions(-) diff --git a/frontend/src/main.js b/frontend/src/main.js index 950b618..2069bf5 100644 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -9,7 +9,6 @@ import {createVuetify} from 'vuetify' import * as components from 'vuetify/components' import * as directives from 'vuetify/directives' import vueGoogleOauth from 'vue3-google-login' -import {useSubscriptionStore} from "@/stores/subscriptionStore.js"; import {useAuthStore} from "@/stores/authStore.js"; import i18n from './i18n.js'; import {useUserProfileStore} from "@/stores/userProfileStore.js"; @@ -33,7 +32,6 @@ const app = createApp(App) app.config.globalProperties.$t = i18n.global.t; // this force the creation and initialization of the stores -useSubscriptionStore() useAuthStore() useUserProfileStore() useCreatorProfileStore() diff --git a/frontend/src/stores/creatorProfileStore.js b/frontend/src/stores/creatorProfileStore.js index b728091..8742c95 100644 --- a/frontend/src/stores/creatorProfileStore.js +++ b/frontend/src/stores/creatorProfileStore.js @@ -14,7 +14,7 @@ export const useCreatorProfileStore = defineStore( () => authStore.isAuthenticated, async (newValue) => { if (newValue) { - await fetchCurrentCreatorProfile(); + value.value = await fetchCurrentCreatorProfile(); if (value.value === undefined) { await router.push('/'); } else { @@ -41,9 +41,9 @@ export const useCreatorProfileStore = defineStore( async function fetchCurrentCreatorProfile() { try { const creatorResponse = await client.get(`/api/creators/profile`); - value.value = creatorResponse.data; + return creatorResponse.data; } catch (error) { - value.value = undefined; + return undefined; } } diff --git a/frontend/src/views/creators/ActualBanner.vue b/frontend/src/views/creators/ActualBanner.vue index 9aed883..27c11ac 100644 --- a/frontend/src/views/creators/ActualBanner.vue +++ b/frontend/src/views/creators/ActualBanner.vue @@ -10,7 +10,7 @@ > Profile Banner diff --git a/frontend/src/views/creators/BannerActions.vue b/frontend/src/views/creators/BannerActions.vue index bb86544..f24526a 100644 --- a/frontend/src/views/creators/BannerActions.vue +++ b/frontend/src/views/creators/BannerActions.vue @@ -21,49 +21,56 @@ function GetSocialsUrls() { const socials = []; const brandingSocials = brandingStore.value.socials; - if (brandingSocials.facebookUrl) { + if (brandingSocials?.facebookUrl) { socials.push({ icon: 'mdi-facebook', url: brandingSocials.facebookUrl, }); } - if (brandingSocials.instagramUrl) { + + if (brandingSocials?.instagramUrl) { socials.push({ icon: 'mdi-instagram', url: brandingSocials.instagramUrl, }); } - if (brandingSocials.xUrl) { + + if (brandingSocials?.xUrl) { socials.push({ icon: 'mdi-twitter', url: brandingSocials.xUrl, }); } - if (brandingSocials.linkedInUrl) { + + if (brandingSocials?.linkedInUrl) { socials.push({ icon: 'mdi-linkedin', url: brandingSocials.linkedInUrl, }); } - if (brandingSocials.tikTokUrl) { + + if (brandingSocials?.tikTokUrl) { socials.push({ icon: '/images/socials/tiktok-white.png', url: brandingSocials.tikTokUrl, }); } - if (brandingSocials.youtubeUrl) { + + if (brandingSocials?.youtubeUrl) { socials.push({ icon: 'mdi-youtube', url: brandingSocials.youtubeUrl, }); } - if (brandingSocials.redditUrl) { + + if (brandingSocials?.redditUrl) { socials.push({ icon: 'mdi-reddit', url: brandingSocials.redditUrl, }); } - if (brandingSocials.websiteUrl) { + + if (brandingSocials?.websiteUrl) { socials.push({ icon: 'mdi-web', url: brandingSocials.websiteUrl, diff --git a/frontend/src/views/creators/CreateCreator.vue b/frontend/src/views/creators/CreateCreator.vue index 87f0a71..ad96b48 100644 --- a/frontend/src/views/creators/CreateCreator.vue +++ b/frontend/src/views/creators/CreateCreator.vue @@ -27,14 +27,12 @@ async function createAccount() { isOperationPending.value = true; const client = useClient(); errorMessage.value = ''; - const normalizedCreatorName = creatorName.value.toLowerCase(); await client.post('/api/creators', { creatorId: userProfileStore.user.id, - name: normalizedCreatorName, slugReservationId: creatorNameReservationId.value, }); await creatorProfileStore.fetchCurrentCreatorProfile(); - await router.push(`/@${normalizedCreatorName}`); + await router.push(`/@${creatorProfileStore.creator.name}`); } catch (error) { if (error?.response?.data?.errors) { errorMessage.value = error.response.data.errors[0]?.['reason'] || 'An unexpected error occurred.'; diff --git a/frontend/src/views/creators/CreatorHome.vue b/frontend/src/views/creators/CreatorHome.vue index ae67dfe..340c855 100644 --- a/frontend/src/views/creators/CreatorHome.vue +++ b/frontend/src/views/creators/CreatorHome.vue @@ -445,6 +445,8 @@ function updateImage(field, event) { // Charger les données au montage onMounted(() => { + if (brandingStore.presentationInfos === undefined) return; + mainTitle.value = brandingStore.presentationInfos.title; mainImageUrl.value = brandingStore.presentationInfos.mainImageUrl; mainImageText.value = brandingStore.presentationInfos.mainImageText; diff --git a/frontend/src/views/creators/CreatorLogo.vue b/frontend/src/views/creators/CreatorLogo.vue index 7d7a3fa..fa69e02 100644 --- a/frontend/src/views/creators/CreatorLogo.vue +++ b/frontend/src/views/creators/CreatorLogo.vue @@ -7,9 +7,7 @@