import { Controller } from '@hotwired/stimulus'; /* * Contrôleur Stimulus pour la gestion d’onglets. * Affiche le bloc correspondant à l’onglet cliqué et masque les autres. * * Les TABS sont présentées par une div avec une liste *
* *
*
*
* ---- CONTENU TAB 1 ---- *
* *
*/ export default class extends Controller { static targets = ['tab']; connect() { console.log("Stimulus: contrôleur d’onglets actif"); this.tabs = this.element.querySelectorAll('[data-id]'); this.containers = document.querySelectorAll('#tabs-content .container'); this.tabs.forEach(tab => { tab.addEventListener('click', (event) => { event.preventDefault(); this.activateTab(tab); }); }); } activateTab(selectedTab) { const targetId = selectedTab.dataset.id; // Mise à jour des onglets actifs this.tabs.forEach(tab => tab.classList.remove('is-active')); selectedTab.classList.add('is-active'); // Affichage du bon bloc this.containers.forEach(container => { if (container.id === targetId) { container.classList.remove('is-hidden'); } else { container.classList.add('is-hidden'); } }); } }