From 6b69b5d713fbbbad8fc62e00df5d7b67f154cf6b Mon Sep 17 00:00:00 2001 From: Eline Evje <elineev@stud.ntnu.no> Date: Thu, 2 May 2024 17:38:04 +0200 Subject: [PATCH] chore: ran format --- src/components/CardChallengeSavingsPath.vue | 24 ++--- src/components/SavingsPath.vue | 22 ++--- src/views/ManageChallengeView.vue | 77 +++++++++------ src/views/ManageGoalView.vue | 101 +++++++++++--------- src/views/ViewChallengeView.vue | 43 +++++---- src/views/ViewGoalView.vue | 42 ++++---- 6 files changed, 175 insertions(+), 134 deletions(-) diff --git a/src/components/CardChallengeSavingsPath.vue b/src/components/CardChallengeSavingsPath.vue index 0421901..14de867 100644 --- a/src/components/CardChallengeSavingsPath.vue +++ b/src/components/CardChallengeSavingsPath.vue @@ -82,9 +82,8 @@ import { onMounted, ref } from 'vue' import authInterceptor from '@/services/authInterceptor' const challengeStore = useChallengeStore() -const challengeImageUrl = ref('/assets/star.png'); // Default or placeholder image -const props = defineProps<{ challenge: Challenge }>(); - +const challengeImageUrl = ref('/assets/star.png') // Default or placeholder image +const props = defineProps<{ challenge: Challenge }>() interface Props { challenge: Challenge @@ -112,20 +111,21 @@ const editChallenge = (challenge: Challenge) => { const getChallengeIcon = async (challengeId: number) => { try { - const imageResponse = await authInterceptor.get(`/challenges/picture?id=${challengeId}`, { responseType: 'blob' }); - challengeImageUrl.value = URL.createObjectURL(imageResponse.data); + const imageResponse = await authInterceptor.get(`/challenges/picture?id=${challengeId}`, { + responseType: 'blob' + }) + challengeImageUrl.value = URL.createObjectURL(imageResponse.data) } catch (error) { - console.error("Failed to load challenge icon:", error); - challengeImageUrl.value = '/assets/default-icon.png'; // Fallback on error + console.error('Failed to load challenge icon:', error) + challengeImageUrl.value = '/assets/default-icon.png' // Fallback on error } -}; +} onMounted(() => { if (props.challenge?.id) { - getChallengeIcon(props.challenge.id); + getChallengeIcon(props.challenge.id) } else { - console.error("Challenge id is undefined"); + console.error('Challenge id is undefined') } -}); - +}) </script> diff --git a/src/components/SavingsPath.vue b/src/components/SavingsPath.vue index 36dcbe6..23aef04 100644 --- a/src/components/SavingsPath.vue +++ b/src/components/SavingsPath.vue @@ -584,27 +584,27 @@ const triggerConfetti = () => { }) } - -const goalImageUrl = ref('src/assets/pengesekkStreak.png'); - +const goalImageUrl = ref('src/assets/pengesekkStreak.png') const getGoalIcon = async (goalId: number) => { try { - const imageResponse = await authInterceptor.get(`/goals/picture?id=${goalId}`, { responseType: 'blob' }); - goalImageUrl.value = URL.createObjectURL(imageResponse.data); + const imageResponse = await authInterceptor.get(`/goals/picture?id=${goalId}`, { + responseType: 'blob' + }) + goalImageUrl.value = URL.createObjectURL(imageResponse.data) } catch (error) { - console.error("Failed to load challenge icon:", error); - goalImageUrl.value = 'src/assets/pengesekkStreak.png'; + console.error('Failed to load challenge icon:', error) + goalImageUrl.value = 'src/assets/pengesekkStreak.png' } -}; +} onMounted(() => { if (props.goal?.id) { - getGoalIcon(props.goal.id); + getGoalIcon(props.goal.id) } else { - console.error("Goal id is undefined"); + console.error('Goal id is undefined') } -}); +}) const getPigStepsIcon = () => { return 'src/assets/pigSteps.png' diff --git a/src/views/ManageChallengeView.vue b/src/views/ManageChallengeView.vue index 8cb79dc..e6ac002 100644 --- a/src/views/ManageChallengeView.vue +++ b/src/views/ManageChallengeView.vue @@ -7,8 +7,7 @@ import type { Challenge } from '@/types/challenge' import ModalComponent from '@/components/ModalComponent.vue' const router = useRouter() -const uploadedFile = ref<File | null>(null); - +const uploadedFile = ref<File | null>(null) const modalTitle = ref('') const modalMessage = ref('') @@ -68,13 +67,13 @@ function validateInputs() { } const handleFileChange = (event: Event) => { - const target = event.target as HTMLInputElement; + const target = event.target as HTMLInputElement if (target.files && target.files.length > 0) { - uploadedFile.value = target.files[0]; + uploadedFile.value = target.files[0] } else { - uploadedFile.value = null; + uploadedFile.value = null } -}; +} const submitAction = async () => { const errors = validateInputs() @@ -86,33 +85,33 @@ const submitAction = async () => { return } try { - let response; + let response if (isEdit.value) { - response = await updateChallenge(); + response = await updateChallenge() } else { - response = await createChallenge(); + response = await createChallenge() } - const challengeId = isEdit.value ? challengeInstance.value.id : response.id; + const challengeId = isEdit.value ? challengeInstance.value.id : response.id if (uploadedFile.value && challengeId) { - const formData = new FormData(); - formData.append('file', uploadedFile.value); - formData.append('id', challengeId.toString()); + const formData = new FormData() + formData.append('file', uploadedFile.value) + formData.append('id', challengeId.toString()) await authInterceptor.post('/challenges/picture', formData, { - headers: { 'Content-Type': 'multipart/form-data' }, - }); + headers: { 'Content-Type': 'multipart/form-data' } + }) } - await router.push({ name: 'challenges' }); + await router.push({ name: 'challenges' }) } catch (error) { - console.error('Error during challenge submission:', error); - modalTitle.value = 'Systemfeil'; - modalMessage.value = 'En feil oppstod under lagring av utfordringen.'; - errorModalOpen.value = true; + console.error('Error during challenge submission:', error) + modalTitle.value = 'Systemfeil' + modalMessage.value = 'En feil oppstod under lagring av utfordringen.' + errorModalOpen.value = true } -}; +} onMounted(async () => { if (isEdit.value) { @@ -136,13 +135,16 @@ onMounted(async () => { }) const createChallenge = async () => { - const response = await authInterceptor.post('/challenges', challengeInstance.value); - return response.data; + const response = await authInterceptor.post('/challenges', challengeInstance.value) + return response.data } const updateChallenge = async () => { - const response = await authInterceptor.put(`/challenges/${challengeInstance.value.id}`, challengeInstance.value); - return response.data; + const response = await authInterceptor.put( + `/challenges/${challengeInstance.value.id}`, + challengeInstance.value + ) + return response.data } const cancelCreation = () => { @@ -167,9 +169,8 @@ const confirmCancel = () => { } const removeUploadedFile = () => { - uploadedFile.value = null; -}; - + uploadedFile.value = null +} </script> <template> @@ -243,13 +244,27 @@ const removeUploadedFile = () => { <div class="flex flex-col items-center"> <p>Last opp ikon for utfordringen📸</p> - <label for="fileUpload" class="bg-white text-black text-lg p-1 mt-2 rounded cursor-pointer leading-none"> + <label + for="fileUpload" + class="bg-white text-black text-lg p-1 mt-2 rounded cursor-pointer leading-none" + > 💾 </label> - <input id="fileUpload" type="file" accept=".jpg" hidden @change="handleFileChange" /> + <input + id="fileUpload" + type="file" + accept=".jpg" + hidden + @change="handleFileChange" + /> <div v-if="uploadedFile" class="flex justify-center items-center mt-2"> <p class="text-sm">{{ uploadedFile.name }}</p> - <button @click="removeUploadedFile" class="ml-2 text-xs font-bold border-2 p-1 rounded text-red-500">Fjern fil</button> + <button + @click="removeUploadedFile" + class="ml-2 text-xs font-bold border-2 p-1 rounded text-red-500" + > + Fjern fil + </button> </div> </div> </div> diff --git a/src/views/ManageGoalView.vue b/src/views/ManageGoalView.vue index cc46ff4..f36a574 100644 --- a/src/views/ManageGoalView.vue +++ b/src/views/ManageGoalView.vue @@ -7,8 +7,7 @@ import authInterceptor from '@/services/authInterceptor' import ModalComponent from '@/components/ModalComponent.vue' const router = useRouter() -const uploadedFile: Ref<File | null> = ref(null); - +const uploadedFile: Ref<File | null> = ref(null) const minDate = new Date(new Date().setDate(new Date().getDate() + 1)).toISOString().slice(0, 10) const selectedDate = ref<string>(minDate) @@ -66,45 +65,44 @@ function validateInputs() { } const submitAction = async () => { - const errors = validateInputs(); + const errors = validateInputs() if (errors.length > 0) { - const formatErrors = errors.join('<br>'); - modalTitle.value = 'Oops! Noe er feil med det du har fylt ut🚨'; - modalMessage.value = formatErrors; - errorModalOpen.value = true; - return; + const formatErrors = errors.join('<br>') + modalTitle.value = 'Oops! Noe er feil med det du har fylt ut🚨' + modalMessage.value = formatErrors + errorModalOpen.value = true + return } try { - let response; + let response if (isEdit.value) { - response = await updateGoal(); + response = await updateGoal() } else { - response = await createGoal(); + response = await createGoal() } - const goalId = isEdit.value ? goalInstance.value.id : response.id; // Adjusted to handle the returned data + const goalId = isEdit.value ? goalInstance.value.id : response.id // Adjusted to handle the returned data if (uploadedFile.value && goalId) { - const formData = new FormData(); - formData.append('file', uploadedFile.value); - formData.append('id', goalId.toString()); + const formData = new FormData() + formData.append('file', uploadedFile.value) + formData.append('id', goalId.toString()) await authInterceptor.post('/goals/picture', formData, { - headers: { 'Content-Type': 'multipart/form-data' }, - }); + headers: { 'Content-Type': 'multipart/form-data' } + }) } - await router.push({ name: 'goals' }); + await router.push({ name: 'goals' }) } catch (error) { - console.error('Error during goal submission:', error); - modalTitle.value = 'Systemfeil'; - modalMessage.value = 'En feil oppstod under lagring av utfordringen.'; - errorModalOpen.value = true; + console.error('Error during goal submission:', error) + modalTitle.value = 'Systemfeil' + modalMessage.value = 'En feil oppstod under lagring av utfordringen.' + errorModalOpen.value = true } -}; - +} watch(selectedDate, (newDate) => { console.log(newDate) @@ -131,23 +129,26 @@ onMounted(async () => { const createGoal = async (): Promise<any> => { try { - const response = await authInterceptor.post('/goals', goalInstance.value); - return response.data; // Ensure the response data is returned + const response = await authInterceptor.post('/goals', goalInstance.value) + return response.data // Ensure the response data is returned } catch (error) { - console.error('Failed to create goal:', error); - throw error; // Rethrow the error to handle it in the submitAction method + console.error('Failed to create goal:', error) + throw error // Rethrow the error to handle it in the submitAction method } -}; +} const updateGoal = async (): Promise<any> => { try { - const response = await authInterceptor.put(`/goals/${goalInstance.value.id}`, goalInstance.value); - return response.data; // Ensure the response data is returned + const response = await authInterceptor.put( + `/goals/${goalInstance.value.id}`, + goalInstance.value + ) + return response.data // Ensure the response data is returned } catch (error) { - console.error('Failed to update goal:', error); - throw error; // Rethrow the error to handle it in the submitAction method + console.error('Failed to update goal:', error) + throw error // Rethrow the error to handle it in the submitAction method } -}; +} const deleteGoal = () => { authInterceptor @@ -181,17 +182,17 @@ const confirmCancel = () => { } const handleFileChange = (event: Event) => { - const target = event.target as HTMLInputElement; + const target = event.target as HTMLInputElement if (target.files && target.files.length > 0) { - uploadedFile.value = target.files[0]; // Save the first selected file + uploadedFile.value = target.files[0] // Save the first selected file } else { - uploadedFile.value = null; + uploadedFile.value = null } -}; +} const removeUploadedFile = () => { - uploadedFile.value = null; -}; + uploadedFile.value = null +} onMounted(async () => { if (isEdit.value) { @@ -264,13 +265,27 @@ onMounted(async () => { </div> <div class="flex flex-col items-center"> <p>Last opp ikon for utfordringen📸</p> - <label for="fileUpload" class="bg-white text-black text-lg p-1 mt-2 rounded cursor-pointer leading-none"> + <label + for="fileUpload" + class="bg-white text-black text-lg p-1 mt-2 rounded cursor-pointer leading-none" + > 💾 </label> - <input id="fileUpload" type="file" accept=".jpg" hidden @change="handleFileChange" /> + <input + id="fileUpload" + type="file" + accept=".jpg" + hidden + @change="handleFileChange" + /> <div v-if="uploadedFile" class="flex justify-center items-center mt-2"> <p class="text-sm">{{ uploadedFile.name }}</p> - <button @click="removeUploadedFile" class="ml-2 text-xs font-bold border-2 p-1 rounded text-red-500">Fjern fil</button> + <button + @click="removeUploadedFile" + class="ml-2 text-xs font-bold border-2 p-1 rounded text-red-500" + > + Fjern fil + </button> </div> </div> </div> diff --git a/src/views/ViewChallengeView.vue b/src/views/ViewChallengeView.vue index 9547641..ced556d 100644 --- a/src/views/ViewChallengeView.vue +++ b/src/views/ViewChallengeView.vue @@ -5,11 +5,11 @@ import ProgressBar from '@/components/ProgressBar.vue' import authInterceptor from '@/services/authInterceptor' import type { Challenge } from '@/types/challenge' import SpareComponent from '@/components/SpareComponent.vue' -import starImage from '@/assets/star.png'; +import starImage from '@/assets/star.png' const router = useRouter() -const challengeImageUrl = ref(starImage); -const isImageLoaded = ref(false); +const challengeImageUrl = ref(starImage) +const isImageLoaded = ref(false) const challengeInstance = ref<Challenge>({ title: 'Tittel', @@ -57,26 +57,29 @@ const calculateSpeech = () => { } onMounted(async () => { - const challengeId = router.currentRoute.value.params.id; - if (!challengeId) return router.push({ name: 'challenges' }); + const challengeId = router.currentRoute.value.params.id + if (!challengeId) return router.push({ name: 'challenges' }) try { - const challengeResponse = await authInterceptor.get(`/challenges/${challengeId}`); - challengeInstance.value = challengeResponse.data; - calculateSpeech(); + const challengeResponse = await authInterceptor.get(`/challenges/${challengeId}`) + challengeInstance.value = challengeResponse.data + calculateSpeech() try { - const imageResponse = await authInterceptor.get(`/challenges/picture?id=${challengeId}`, { responseType: 'blob' }); - challengeImageUrl.value = URL.createObjectURL(imageResponse.data); + const imageResponse = await authInterceptor.get( + `/challenges/picture?id=${challengeId}`, + { responseType: 'blob' } + ) + challengeImageUrl.value = URL.createObjectURL(imageResponse.data) } catch (imageError) { - console.error("Failed to load image:", imageError); + console.error('Failed to load image:', imageError) } - isImageLoaded.value = true; + isImageLoaded.value = true } catch (error) { - console.error("Failed to load challenge details:", error); - await router.push({ name: 'challenges' }); + console.error('Failed to load challenge details:', error) + await router.push({ name: 'challenges' }) } -}); +}) const completeChallenge = () => { authInterceptor @@ -93,8 +96,7 @@ const completeChallenge = () => { <template> <div class="flex flex-row flex-wrap items-center justify-center gap-10"> <div class="flex flex-col gap-5 max-w-96"> - <div class="flex flex-col items-center"> - </div> + <div class="flex flex-col items-center"></div> <button class="w-min bg-transparent rounded-lg font-bold left-10 cursor-pointer transition-transform duration-300 ease-in-out hover:scale-110 hover:opacity-100 justify-start" @@ -113,7 +115,12 @@ const completeChallenge = () => { <div class="flex flex-row gap-4 justify-center"> <p class="text-wrap break-words">{{ challengeInstance.description }}</p> <div> - <img v-if="isImageLoaded" :src="challengeImageUrl || '@/assets/star.png'" alt="Goal Image" class="w-full h-40 object-cover rounded-lg"> + <img + v-if="isImageLoaded" + :src="challengeImageUrl || '@/assets/star.png'" + alt="Goal Image" + class="w-full h-40 object-cover rounded-lg" + /> </div> </div> <br /> diff --git a/src/views/ViewGoalView.vue b/src/views/ViewGoalView.vue index 523c843..d6addf8 100644 --- a/src/views/ViewGoalView.vue +++ b/src/views/ViewGoalView.vue @@ -5,13 +5,11 @@ import ProgressBar from '@/components/ProgressBar.vue' import authInterceptor from '@/services/authInterceptor' import type { Goal } from '@/types/goal' import SpareComponent from '@/components/SpareComponent.vue' -import starImage from '@/assets/star.png'; - +import starImage from '@/assets/star.png' const router = useRouter() -const goalImageUrl = ref(starImage); -const isImageLoaded = ref(false); - +const goalImageUrl = ref(starImage) +const isImageLoaded = ref(false) const goalInstance = ref<Goal>({ title: 'Test tittel', @@ -51,27 +49,28 @@ const calculateSpeech = () => { } onMounted(async () => { - const goalId = router.currentRoute.value.params.id; - if (!goalId) return router.push({ name: 'goals' }); + const goalId = router.currentRoute.value.params.id + if (!goalId) return router.push({ name: 'goals' }) try { - const goalResponse = await authInterceptor.get(`/goals/${goalId}`); - goalInstance.value = goalResponse.data; - calculateSpeech(); + const goalResponse = await authInterceptor.get(`/goals/${goalId}`) + goalInstance.value = goalResponse.data + calculateSpeech() try { - const imageResponse = await authInterceptor.get(`/goals/picture?id=${goalId}`, { responseType: 'blob' }); - goalImageUrl.value = URL.createObjectURL(imageResponse.data); + const imageResponse = await authInterceptor.get(`/goals/picture?id=${goalId}`, { + responseType: 'blob' + }) + goalImageUrl.value = URL.createObjectURL(imageResponse.data) } catch (imageError) { - console.error("Failed to load image:", imageError); + console.error('Failed to load image:', imageError) } - isImageLoaded.value = true; + isImageLoaded.value = true } catch (error) { - console.error("Failed to load goal details:", error); - await router.push({ name: 'goals' }); + console.error('Failed to load goal details:', error) + await router.push({ name: 'goals' }) } -}); - +}) const completeGoal = () => { authInterceptor @@ -105,7 +104,12 @@ const completeGoal = () => { <div class="flex flex-row gap-4 justify-center"> <p class="text-wrap break-words">{{ goalInstance.description }}</p> <div> - <img v-if="isImageLoaded" :src="goalImageUrl || '@/assets/star.png'" alt="Goal Image" class="w-full h-40 object-cover rounded-lg"> + <img + v-if="isImageLoaded" + :src="goalImageUrl || '@/assets/star.png'" + alt="Goal Image" + class="w-full h-40 object-cover rounded-lg" + /> </div> </div> <br /> -- GitLab