fix - url link overall
continuous-integration/drone/push Build is passing Details

master
37b7 3 weeks ago
parent 3d7d6d8bf6
commit c505e648fb

@ -4,7 +4,7 @@
<div class="timeline-content"> <div class="timeline-content">
<h3>{{ experience.title }}</h3> <h3>{{ experience.title }}</h3>
<p>{{ experience.description }}</p> <p>{{ experience.description }}</p>
<NuxtLink :to="`${`/about/${props.experience.id}`}`" class="about-link"> <NuxtLink :to="`${navigationItems.find((item: any) => item.finder === 'about')?.path}/${props.experience.id}`" class="about-link">
<div class="about-link-content"> <div class="about-link-content">
<span></span> {{ TEXTS.COMMON.READ_MORE }} <span></span> {{ TEXTS.COMMON.READ_MORE }}
</div> </div>

@ -1,6 +1,6 @@
<template> <template>
<div class="project-card"> <div class="project-card">
<NuxtLink :to="`${navigationItems.find(item => item.path === '/projects')?.path}/${project.id}`" class="project-link"> <NuxtLink :to="`${navigationItems.find((item: any) => item.finder === 'projects')?.path}/${project.id}`" class="project-link">
<div class="project-image"> <div class="project-image">
<NuxtImg <NuxtImg
:src="imageSrc" :src="imageSrc"

@ -33,10 +33,6 @@ export const useProjects = () => {
return projects; return projects;
}); });
const navigateToProject = (projectId: number) => {
router.push(`/projects/${projectId}`);
};
const loadProjectResources = async () => { const loadProjectResources = async () => {
try { try {
const loadPromises = projects.map(async (project: Project) => { const loadPromises = projects.map(async (project: Project) => {
@ -87,7 +83,6 @@ export const useProjects = () => {
isLoading, isLoading,
error, error,
truncateDescription, truncateDescription,
navigateToProject,
handleImageError, handleImageError,
handleIconError, handleIconError,
getProjectStatus getProjectStatus

@ -11,17 +11,17 @@ export const navigationItems: NavigationItem[] = [
icon: 'home' icon: 'home'
}, },
{ {
path: '/projects', path: process.env.NODE_ENV === 'production' ? '/projects' : '/containers/matheothierry-portfolio_nuxt/projects',
name: 'Projets', name: 'Projets',
icon: 'projects' icon: 'projects'
}, },
{ {
path: '/about', path: process.env.NODE_ENV === 'production' ? '/about' : '/containers/matheothierry-portfolio_nuxt/about',
name: 'À Propos', name: 'À Propos',
icon: 'about' icon: 'about'
}, },
{ {
path: '/cv', path: process.env.NODE_ENV === 'production' ? '/cv' : '/containers/matheothierry-portfolio_nuxt/cv',
name: 'CV', name: 'CV',
icon: 'cv' icon: 'cv'
} }

@ -11,4 +11,8 @@ COPY --from=builder /app/.output ./.output
COPY --from=builder /app/package*.json ./ COPY --from=builder /app/package*.json ./
RUN npm install --production RUN npm install --production
EXPOSE 3000 EXPOSE 3000
ENV NODE_ENV=production
ENV HOST=0.0.0.0
ENV PORT=3000
ENV NUXT_PUBLIC_BASE_URL=/containers/matheothierry-portfolio_nuxt/
CMD ["node", ".output/server/index.mjs"] CMD ["node", ".output/server/index.mjs"]

@ -26,9 +26,6 @@ export default defineNuxtConfig({
{ rel: 'icon', type: 'image/x-icon', href: process.env.NODE_ENV === 'production' ? '/containers/matheothierry-portfolio_nuxt/favicon.ico' : '/favicon.ico' } { rel: 'icon', type: 'image/x-icon', href: process.env.NODE_ENV === 'production' ? '/containers/matheothierry-portfolio_nuxt/favicon.ico' : '/favicon.ico' }
] ]
}, },
baseURL: process.env.NODE_ENV === 'production' ? '/containers/matheothierry-portfolio_nuxt/' : '/',
buildAssetsDir: process.env.NODE_ENV === 'production' ? '/containers/matheothierry-portfolio_nuxt/_nuxt/' : '/_nuxt/',
cdnURL: process.env.NODE_ENV === 'production' ? '/containers/matheothierry-portfolio_nuxt/' : '/'
}, },
modules: ['@nuxt/image'], modules: ['@nuxt/image'],
@ -45,4 +42,4 @@ export default defineNuxtConfig({
xxl: 1536, xxl: 1536,
} }
} }
}) })

@ -2,7 +2,7 @@
<div class="experience-detail"> <div class="experience-detail">
<div v-if="experience" class="experience-content"> <div v-if="experience" class="experience-content">
<div class="experience-header-return"> <div class="experience-header-return">
<NuxtLink to="/about" class="back-link"> <NuxtLink :to="navigationItems.find((item: any) => item.finder === 'about')?.path" class="back-link">
<span class="back-arrow"></span> Back to Experiences <span class="back-arrow"></span> Back to Experiences
</NuxtLink> </NuxtLink>
</div> </div>
@ -43,7 +43,7 @@
<div v-else class="error-message"> <div v-else class="error-message">
<h2>Experience not found</h2> <h2>Experience not found</h2>
<NuxtLink to="/about" class="back-link"> <NuxtLink :to="navigationItems.find((item: any) => item.finder === 'about')?.path" class="back-link">
<span class="back-arrow"></span> Back to Experiences <span class="back-arrow"></span> Back to Experiences
</NuxtLink> </NuxtLink>
</div> </div>
@ -52,7 +52,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { experiences } from '~/config/experience' import { experiences } from '~/config/experience'
import { navigationItems } from '~/config/navigation'
const route = useRoute() const route = useRoute()
const experience = computed(() => { const experience = computed(() => {
return experiences.find(item => item.id === Number(route.params.id)) return experiences.find(item => item.id === Number(route.params.id))

@ -1,7 +1,7 @@
<template> <template>
<div class="project-docs"> <div class="project-docs">
<div class="back-button"> <div class="back-button">
<NuxtLink :to="`/projects/${route.params.id}`" class="back-link"> <NuxtLink :to="`${navigationItems.find((item: any) => item.finder === 'projects')?.path}/${route.params.id}`" class="back-link">
<span></span> {{ TEXTS.COMMON.BACK_TO_PROJECTS }} <span></span> {{ TEXTS.COMMON.BACK_TO_PROJECTS }}
</NuxtLink> </NuxtLink>
</div> </div>
@ -38,7 +38,7 @@
<div v-else class="error"> <div v-else class="error">
<h2>{{ TEXTS.COMMON.ERROR.NOT_FOUND }}</h2> <h2>{{ TEXTS.COMMON.ERROR.NOT_FOUND }}</h2>
<p>{{ TEXTS.COMMON.ERROR.PROJECT_NOT_FOUND }}</p> <p>{{ TEXTS.COMMON.ERROR.PROJECT_NOT_FOUND }}</p>
<NuxtLink to="/projects" class="back-link"> <NuxtLink :to="navigationItems.find((item: any) => item.finder === 'projects')?.path" class="back-link">
{{ TEXTS.COMMON.BACK_TO_PROJECTS }} {{ TEXTS.COMMON.BACK_TO_PROJECTS }}
</NuxtLink> </NuxtLink>
</div> </div>
@ -48,7 +48,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { projects } from '~/config/projects' import { projects } from '~/config/projects'
import { TEXTS } from '~/config/content' import { TEXTS } from '~/config/content'
import { navigationItems } from '~/config/navigation'
const route = useRoute() const route = useRoute()
console.log(route.params.id) console.log(route.params.id)
const project = computed(() => { const project = computed(() => {

@ -1,7 +1,7 @@
<template> <template>
<div class="project-detail"> <div class="project-detail">
<div class="back-button"> <div class="back-button">
<NuxtLink to="/projects" class="back-link"> <NuxtLink :to="navigationItems.find((item: any) => item.finder === 'projects')?.path" class="back-link">
<span></span> {{ TEXTS.COMMON.BACK_TO_PROJECTS }} <span></span> {{ TEXTS.COMMON.BACK_TO_PROJECTS }}
</NuxtLink> </NuxtLink>
</div> </div>
@ -58,7 +58,7 @@
<div v-else class="error"> <div v-else class="error">
<h2>{{ TEXTS.COMMON.ERROR.NOT_FOUND }}</h2> <h2>{{ TEXTS.COMMON.ERROR.NOT_FOUND }}</h2>
<p>{{ TEXTS.COMMON.ERROR.PROJECT_NOT_FOUND }}</p> <p>{{ TEXTS.COMMON.ERROR.PROJECT_NOT_FOUND }}</p>
<NuxtLink to="/projects" class="back-link"> <NuxtLink :to="navigationItems.find((item: any) => item.finder === 'projects')?.path" class="back-link">
{{ TEXTS.COMMON.BACK_TO_PROJECTS }} {{ TEXTS.COMMON.BACK_TO_PROJECTS }}
</NuxtLink> </NuxtLink>
</div> </div>
@ -68,6 +68,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { useProjectDetail } from '~/composables/useProjectDetail'; import { useProjectDetail } from '~/composables/useProjectDetail';
import { TEXTS } from '~/config/content'; import { TEXTS } from '~/config/content';
import { navigationItems } from '~/config/navigation';
const { const {
currentProject, currentProject,

@ -17,19 +17,13 @@
<script setup lang="ts"> <script setup lang="ts">
import { projects } from '~/config/projects'; import { projects } from '~/config/projects';
import { DEFAULT_IMAGES } from '~/config/paths';
import { TEXTS } from '~/config/content'; import { TEXTS } from '~/config/content';
const isLoading = ref(false); const isLoading = ref(false);
const handleImageError = (event: Event) => {
const target = event.target as HTMLImageElement;
target.src = DEFAULT_IMAGES.PROJECT;
};
setTimeout(() => { setTimeout(() => {
isLoading.value = false; isLoading.value = false;
}, 500); }, 200);//love when its fake... HAHAHHAHAHAH
</script> </script>
<style scoped> <style scoped>

Loading…
Cancel
Save