@bebranded/bb-contents 1.0.77-beta → 1.0.79-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 +47 -8
  2. package/package.json +1 -1
package/bb-contents.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * BeBranded Contents
3
3
  * Contenus additionnels français pour Webflow
4
- * @version 1.0.77-beta
4
+ * @version 1.0.79-beta
5
5
  * @author BeBranded
6
6
  * @license MIT
7
7
  * @website https://www.bebranded.xyz
@@ -41,7 +41,7 @@
41
41
 
42
42
  // Configuration
43
43
  const config = {
44
- version: '1.0.77-beta',
44
+ version: '1.0.79-beta',
45
45
  debug: true, // Debug activé pour diagnostic
46
46
  prefix: 'bb-', // utilisé pour générer les sélecteurs (data-bb-*)
47
47
  youtubeEndpoint: null, // URL du worker YouTube (à définir par l'utilisateur)
@@ -408,33 +408,72 @@
408
408
  imagesLoaded++;
409
409
  console.log(`🖼️ [MARQUEE] Safari - Image ${imagesLoaded}/${totalImages} chargée`);
410
410
  };
411
+ img.onerror = () => {
412
+ imagesLoaded++;
413
+ console.log(`❌ [MARQUEE] Safari - Image ${imagesLoaded}/${totalImages} erreur de chargement`);
414
+ };
411
415
  });
412
416
 
413
- // Attendre que les images se chargent ou timeout
417
+ // Attendre que les images se chargent avec timeout adapté mobile
418
+ let waitTimeout = 0;
419
+ const maxWaitTime = 3000; // 3 secondes max sur mobile
420
+ const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
421
+
422
+ console.log(`🔍 [MARQUEE] Safari - Mobile détecté: ${isMobile}`);
423
+
414
424
  const waitForImages = () => {
415
- if (imagesLoaded >= totalImages || imagesLoaded === 0) {
416
- console.log(`✅ [MARQUEE] Safari - Images chargées: ${imagesLoaded}/${totalImages}`);
417
- startSafariAnimation();
425
+ waitTimeout += 100;
426
+
427
+ if (imagesLoaded >= totalImages || imagesLoaded === 0 || waitTimeout >= maxWaitTime) {
428
+ console.log(`✅ [MARQUEE] Safari - Images chargées: ${imagesLoaded}/${totalImages} (timeout: ${waitTimeout}ms)`);
429
+
430
+ // Attendre encore un peu pour que les images se rendent visuellement
431
+ setTimeout(() => {
432
+ console.log(`🖼️ [MARQUEE] Safari - Attente rendu visuel des images...`);
433
+ startSafariAnimation();
434
+ }, isMobile ? 500 : 200); // Plus de temps sur mobile
418
435
  } else {
419
436
  setTimeout(waitForImages, 100);
420
437
  }
421
438
  };
422
439
 
423
440
  const startSafariAnimation = () => {
441
+ // Forcer le chargement des images restantes si timeout
442
+ if (waitTimeout >= maxWaitTime && imagesLoaded < totalImages) {
443
+ console.log(`⚠️ [MARQUEE] Safari - Timeout atteint, forcer chargement images restantes`);
444
+ images.forEach(img => {
445
+ if (img.dataset.src && !img.src) {
446
+ img.src = img.dataset.src;
447
+ img.loading = 'eager';
448
+ }
449
+ });
450
+ }
451
+
452
+ // Vérifier que les images ont une taille visible
453
+ let imagesWithSize = 0;
454
+ images.forEach(img => {
455
+ if (img.offsetWidth > 0 && img.offsetHeight > 0) {
456
+ imagesWithSize++;
457
+ }
458
+ });
459
+ console.log(`🖼️ [MARQUEE] Safari - Images avec taille visible: ${imagesWithSize}/${totalImages}`);
460
+
424
461
  // Recalculer la taille après chargement des images
425
462
  const newContentSize = isVertical ? mainBlock.offsetHeight : mainBlock.offsetWidth;
426
463
  console.log(`🔍 [MARQUEE] Safari - Nouvelle taille après images: ${newContentSize}px`);
427
464
 
428
465
  let finalContentSize = newContentSize > contentSize ? newContentSize : contentSize;
429
466
 
430
- // Fallback si toujours trop petit
467
+ // Fallback si toujours trop petit (surtout sur mobile)
431
468
  if (finalContentSize < 200) {
432
469
  const parentElement = element.parentElement;
433
470
  if (parentElement) {
434
471
  finalContentSize = isVertical ? parentElement.offsetHeight : parentElement.offsetWidth;
435
472
  }
436
473
  if (finalContentSize < 200) {
437
- finalContentSize = isVertical ? 400 : 800;
474
+ // Valeurs par défaut plus généreuses sur mobile
475
+ finalContentSize = isVertical ? (isMobile ? 600 : 400) : (isMobile ? 1000 : 800);
476
+ console.log(`🔍 [MARQUEE] Safari - Utilisation valeur par défaut mobile: ${finalContentSize}px`);
438
477
  }
439
478
  }
440
479
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bebranded/bb-contents",
3
- "version": "1.0.77-beta",
3
+ "version": "1.0.79-beta",
4
4
  "description": "Contenus additionnels français pour Webflow",
5
5
  "main": "bb-contents.js",
6
6
  "scripts": {