diff --git a/src/components/project/virtual-sample/DynamicView.vue b/src/components/project/virtual-sample/DynamicView.vue index f89552b..8273c73 100644 --- a/src/components/project/virtual-sample/DynamicView.vue +++ b/src/components/project/virtual-sample/DynamicView.vue @@ -100,8 +100,18 @@ onBeforeMount(() => { if (route?.hash && route.hash.length > 0) { const variations = tracks.value.flatMap((t) => t.variations || []); - initialVariation = - variations.find((v) => v.slug === route.hash.substring(1)) || null; + const hashValue = route.hash.substring(1); + + // Essayer de trouver la variation soit par slug direct, soit en normalisant le hash + initialVariation = variations.find((v) => { + // Comparaison directe + if (v.slug === hashValue) return true; + // Comparaison en convertissant underscores en tirets (slugify par défaut) + if (v.slug === hashValue.replace(/_/g, '-')) return true; + // Comparaison inverse : le slug du backend pourrait avoir des underscores + if (v.slug.replace(/-/g, '_') === hashValue) return true; + return false; + }) || null; } // fallback : première variation du premier track