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 ----
*
*
* ---- CONTENU TAB 2 ----
*
*
*/
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');
}
});
}
}