@bebranded/bb-contents 1.0.36-beta → 1.0.37-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/bb-contents.js +45 -28
  2. package/package.json +1 -1
package/bb-contents.js CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  // Configuration
19
19
  const config = {
20
- version: '1.0.36-beta',
20
+ version: '1.0.37-beta',
21
21
  debug: true, // Activé temporairement pour debug
22
22
  prefix: 'bb-', // utilisé pour générer les sélecteurs (data-bb-*)
23
23
  i18n: {
@@ -466,9 +466,13 @@
466
466
  // Marquer l'élément comme traité par le module marquee
467
467
  element.setAttribute('data-bb-marquee-processed', 'true');
468
468
 
469
- // Fonction pour initialiser l'animation avec retry amélioré
469
+ // Fonction pour initialiser l'animation avec vérification robuste des dimensions
470
470
  const initAnimation = (retryCount = 0) => {
471
- // Attendre que le contenu soit dans le DOM
471
+ // Vérifier que les images sont chargées
472
+ const images = mainBlock.querySelectorAll('img');
473
+ const imagesLoaded = Array.from(images).every(img => img.complete && img.naturalHeight > 0);
474
+
475
+ // Attendre que le contenu soit dans le DOM et que les images soient chargées
472
476
  requestAnimationFrame(() => {
473
477
  // Calcul plus robuste des dimensions
474
478
  const rect = mainBlock.getBoundingClientRect();
@@ -486,29 +490,22 @@
486
490
  bbContents.utils.log('Largeur corrigée pour marquee vertical:', finalWidth, 'px (était:', contentWidth, 'px)');
487
491
  }
488
492
 
489
- // Debug amélioré
490
- bbContents.utils.log('Debug - Largeur du contenu:', finalWidth, 'px', 'Hauteur:', finalHeight, 'px', 'Enfants:', mainBlock.children.length, 'Vertical:', isVertical, 'Direction:', direction, 'Tentative:', retryCount + 1);
493
+ // Debug amélioré avec statut des images
494
+ bbContents.utils.log('Debug - Largeur:', finalWidth, 'px, Hauteur:', finalHeight, 'px, Images chargées:', imagesLoaded, 'Enfants:', mainBlock.children.length, 'Vertical:', isVertical, 'Direction:', direction, 'Tentative:', retryCount + 1);
491
495
 
492
- // Si pas de contenu, réessayer avec délai progressif
493
- if ((isVertical && finalHeight === 0) || (!isVertical && finalWidth === 0)) {
494
- if (retryCount < 5) {
495
- bbContents.utils.log('Contenu non prêt, nouvelle tentative dans', (200 + retryCount * 100), 'ms');
496
- setTimeout(() => initAnimation(retryCount + 1), 200 + retryCount * 100);
497
- return;
498
- } else {
499
- bbContents.utils.log('Échec d\'initialisation après 5 tentatives');
500
- return;
501
- }
502
- }
496
+ // Vérifications robustes avant initialisation
497
+ const hasValidDimensions = (isVertical && finalHeight > 50) || (!isVertical && finalWidth > 50);
498
+ const maxRetries = 8; // Plus de tentatives pour attendre les images
503
499
 
504
- // Pour le vertical, s'assurer qu'on a une hauteur minimale
505
- if (isVertical && finalHeight < 50) {
506
- if (retryCount < 5) {
507
- bbContents.utils.log('Hauteur insuffisante pour le marquee vertical (' + finalHeight + 'px), nouvelle tentative dans', (200 + retryCount * 100), 'ms');
508
- setTimeout(() => initAnimation(retryCount + 1), 200 + retryCount * 100);
500
+ // Si pas de contenu valide ou images pas chargées, réessayer
501
+ if (!hasValidDimensions || !imagesLoaded) {
502
+ if (retryCount < maxRetries) {
503
+ const delay = 300 + retryCount * 200; // Délais plus longs pour attendre les images
504
+ bbContents.utils.log('Contenu/images non prêts, nouvelle tentative dans', delay, 'ms');
505
+ setTimeout(() => initAnimation(retryCount + 1), delay);
509
506
  return;
510
507
  } else {
511
- bbContents.utils.log('Échec d\'initialisation - hauteur insuffisante après 5 tentatives');
508
+ bbContents.utils.log('Échec d\'initialisation après', maxRetries, 'tentatives - dimensions:', finalWidth + 'x' + finalHeight, 'images chargées:', imagesLoaded);
512
509
  return;
513
510
  }
514
511
  }
@@ -609,12 +606,22 @@
609
606
  });
610
607
  };
611
608
 
612
- // Démarrer l'initialisation avec délai adaptatif
613
- let initDelay = isVertical ? 300 : 100;
609
+ // Démarrer l'initialisation avec délai adaptatif - Option 1: Attendre que tout soit prêt
610
+ let initDelay = isVertical ? 500 : 200; // Délais plus longs par défaut
614
611
  if (bbContents._performanceBoostDetected) {
615
- initDelay = isVertical ? 600 : 300; // Délais plus longs avec bb-performance-boost
612
+ initDelay = isVertical ? 800 : 500; // Délais encore plus longs avec bb-performance-boost
613
+ }
614
+
615
+ // Attendre window.load si pas encore déclenché
616
+ if (document.readyState !== 'complete') {
617
+ bbContents.utils.log('Attente de window.load pour initialiser le marquee');
618
+ window.addEventListener('load', () => {
619
+ setTimeout(() => initAnimation(0), initDelay);
620
+ });
621
+ } else {
622
+ // window.load déjà déclenché, initialiser directement
623
+ setTimeout(() => initAnimation(0), initDelay);
616
624
  }
617
- setTimeout(() => initAnimation(0), initDelay);
618
625
  });
619
626
 
620
627
  bbContents.utils.log('Module Marquee initialisé:', elements.length, 'éléments');
@@ -1020,9 +1027,9 @@
1020
1027
  }, delay);
1021
1028
  }
1022
1029
 
1023
- // Initialisation différée supplémentaire pour les cas difficiles
1030
+ // Initialisation différée supplémentaire pour les cas difficiles - Option 1: Attendre que tout soit vraiment prêt
1024
1031
  window.addEventListener('load', function() {
1025
- const loadDelay = document.body.hasAttribute('bb-performance-boost') ? 2000 : 1000;
1032
+ const loadDelay = document.body.hasAttribute('bb-performance-boost') ? 3000 : 1500; // Délais plus longs
1026
1033
  setTimeout(function() {
1027
1034
  // Vérifier s'il y a des éléments non initialisés
1028
1035
  const unprocessedMarquees = document.querySelectorAll('[bb-marquee]:not([data-bb-marquee-processed])');
@@ -1030,6 +1037,16 @@
1030
1037
  bbContents.utils.log('Éléments marquee non initialisés détectés après load, réinitialisation...');
1031
1038
  bbContents.reinit();
1032
1039
  }
1040
+
1041
+ // Vérification supplémentaire des images chargées
1042
+ const allImages = document.querySelectorAll('img');
1043
+ const unloadedImages = Array.from(allImages).filter(img => !img.complete || img.naturalHeight === 0);
1044
+ if (unloadedImages.length > 0) {
1045
+ bbContents.utils.log('Images non chargées détectées:', unloadedImages.length, '- attente supplémentaire...');
1046
+ setTimeout(() => {
1047
+ bbContents.reinit();
1048
+ }, 1000);
1049
+ }
1033
1050
  }, loadDelay);
1034
1051
  });
1035
1052
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bebranded/bb-contents",
3
- "version": "1.0.36-beta",
3
+ "version": "1.0.37-beta",
4
4
  "description": "Contenus additionnels français pour Webflow",
5
5
  "main": "bb-contents.js",
6
6
  "scripts": {