@bebranded/bb-contents 1.0.19-beta → 1.0.20-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 +27 -5
  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.19-beta
4
+ * @version 1.0.20-beta
5
5
  * @author BeBranded
6
6
  * @license MIT
7
7
  * @website https://www.bebranded.xyz
@@ -17,7 +17,7 @@
17
17
 
18
18
  // Configuration
19
19
  const config = {
20
- version: '1.0.19-beta',
20
+ version: '1.0.20-beta',
21
21
  debug: window.location.hostname === 'localhost' || window.location.hostname.includes('webflow.io'),
22
22
  prefix: 'bb-', // utilisé pour générer les sélecteurs (data-bb-*)
23
23
  i18n: {
@@ -317,7 +317,11 @@
317
317
  bbContents.utils.log('Module détecté: marquee');
318
318
 
319
319
  elements.forEach(element => {
320
- if (element.bbProcessed) return;
320
+ // Vérifier si l'élément a déjà été traité par un autre module
321
+ if (element.bbProcessed || element.hasAttribute('data-bb-youtube-processed')) {
322
+ bbContents.utils.log('Élément marquee déjà traité par un autre module, ignoré:', element);
323
+ return;
324
+ }
321
325
  element.bbProcessed = true;
322
326
 
323
327
  // Récupérer les options
@@ -357,9 +361,14 @@
357
361
 
358
362
  // Assembler
359
363
  mainContainer.appendChild(scrollContainer);
364
+ // Sauvegarder le contenu original avant de vider
365
+ const originalMarqueeContent = element.innerHTML;
360
366
  element.innerHTML = '';
361
367
  element.appendChild(mainContainer);
362
368
 
369
+ // Marquer l'élément comme traité par le module marquee
370
+ element.setAttribute('data-bb-marquee-processed', 'true');
371
+
363
372
  // Animation JavaScript simple et efficace
364
373
  const isVertical = orientation === 'vertical';
365
374
  let animationId;
@@ -437,7 +446,11 @@
437
446
  bbContents.utils.log('Module détecté: youtube');
438
447
 
439
448
  elements.forEach(element => {
440
- if (element.bbProcessed) return;
449
+ // Vérifier si l'élément a déjà été traité par un autre module
450
+ if (element.bbProcessed || element.hasAttribute('data-bb-marquee-processed')) {
451
+ bbContents.utils.log('Élément youtube déjà traité par un autre module, ignoré:', element);
452
+ return;
453
+ }
441
454
  element.bbProcessed = true;
442
455
 
443
456
  const channelId = bbContents._getAttr(element, 'bb-youtube-channel');
@@ -478,6 +491,9 @@
478
491
  // Cacher le template original
479
492
  template.style.display = 'none';
480
493
 
494
+ // Marquer l'élément comme traité par le module YouTube
495
+ element.setAttribute('data-bb-youtube-processed', 'true');
496
+
481
497
  // Afficher un loader
482
498
  container.innerHTML = '<div style="padding: 20px; text-align: center; color: #6b7280;">Chargement des vidéos YouTube...</div>';
483
499
 
@@ -512,9 +528,15 @@
512
528
  let videos = data.items;
513
529
  bbContents.utils.log(`Vidéos reçues de l'API: ${videos.length} (allowShorts: ${allowShorts})`);
514
530
 
515
- // Vider le conteneur
531
+ // Vider le conteneur (en préservant les éléments marquee)
532
+ const marqueeElements = container.querySelectorAll('[data-bb-marquee-processed]');
516
533
  container.innerHTML = '';
517
534
 
535
+ // Restaurer les éléments marquee si présents
536
+ marqueeElements.forEach(marqueeEl => {
537
+ container.appendChild(marqueeEl);
538
+ });
539
+
518
540
  // Cloner le template pour chaque vidéo
519
541
  videos.forEach(item => {
520
542
  const videoId = item.id.videoId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bebranded/bb-contents",
3
- "version": "1.0.19-beta",
3
+ "version": "1.0.20-beta",
4
4
  "description": "Contenus additionnels français pour Webflow",
5
5
  "main": "bb-contents.js",
6
6
  "scripts": {