diff --git a/src/components/project/cards/VirtualSample.vue b/src/components/project/cards/VirtualSample.vue index 3b7123f..56d6d34 100644 --- a/src/components/project/cards/VirtualSample.vue +++ b/src/components/project/cards/VirtualSample.vue @@ -25,7 +25,7 @@ const images = computed(() => { }, ]; } - return allVariations.value.map((variation) => getFrontView(variation)) ?? []; + return allVariations.value.map((variation) => getFrontView(variation)).filter(Boolean) ?? []; }); const uri = addLocalePrefix(step.uri); @@ -35,10 +35,13 @@ function getFrontView(variation) { const xMax = parseInt( variation.files[variation.files.length - 1].name.split('_')[1].split('.')[0] ); - const xFrontView = (xMax + 1) / 2; + const xFrontView = Math.round((xMax + 1) / 2); const extension = variation.files[0].name.split('.')[1]; const frontViewName = '0_' + xFrontView + '.' + extension; const frontView = variation.files.find((file) => file.name === frontViewName); - return frontView; + if (!frontView) { + console.warn(`[VirtualSample] Front view "${frontViewName}" not found in variation "${variation.title}", falling back to first file.`); + } + return frontView ?? variation.files[0]; }