avec votre espace
// Résultats — top 3 + pyramide + CTA (version B2B) const { useState: useStateR, useEffect: useEffectR, useMemo: useMemoR } = React; // Map catalog IDs to WordPress fragrance slugs const FRAG_SLUGS = { 'CRC-068': 'caracas', 'OAM-021': 'oud-ambre', 'CIP-044': 'agrumes-du-soleil', 'IRS-019': 'iris-jasmin', 'FIG-031': 'jardins-polynesiens', 'VET-052': 'vetiver-oriental', 'ROS-007': 'eau-de-rose', 'SEL-088': 'algue-marine', }; function fragUrl(frag) { var slug = FRAG_SLUGS[frag.id]; if (slug) return '/fragrances/' + slug + '/'; // fallback: try name-based slug var n = frag.name.toLowerCase().replace(/[^a-z0-9]+/g, '-'); if (frag.italic) n += '-' + frag.italic.toLowerCase().replace(/[^a-z0-9]+/g, '-'); return '/fragrances/' + n + '/'; } window.SimResults = function SimResults({ state, onRestart }){ const ranked = useMemoR(()=> window.SCENTIUM_MATCH(state), [state]); const top = ranked.slice(0,3); const [focused, setFocused] = useStateR(0); const main = top[focused]; // Profil espace const profile = useMemoR(()=>{ const t = []; if((state.warm??.5) > .6) t.push('chaleureuse'); else if((state.warm??.5) < .4) t.push('fra\u00eeche'); else t.push('temp\u00e9r\u00e9e'); if((state.shade??.5) > .6) t.push('ombr\u00e9e'); else if((state.shade??.5) < .4) t.push('lumineuse'); if((state.intense??.5) > .65) t.push('immersive'); else if((state.intense??.5) < .35) t.push('discr\u00e8te'); if((state.wood??.5) > .6) t.push('bois\u00e9e'); else if((state.wood??.5) < .4) t.push('florale'); if((state.sweet??.5) > .6) t.push('et gourmande'); else if((state.sweet??.5) < .4) t.push('et s\u00e8che'); return t.join(', '); }, [state]); return (
Trois fragrances composées en France correspondent à votre espace. Contactez-nous pour recevoir un échantillon.