hextra/assets/js/tabs.js
Xin b6e0ab0872 feat: add tabs implementation
chore: use filename by default in sidebar
2023-08-16 20:39:42 +01:00

21 lines
802 B
JavaScript

document.querySelectorAll('.tabs-toggle').forEach(function (button) {
button.addEventListener('click', function (e) {
// set parent tabs to unselected
const tabs = Array.from(e.target.parentElement.querySelectorAll('.tabs-toggle'));
tabs.map(tab => tab.setAttribute('data-state', ''));
// set current tab to selected
e.target.setAttribute('data-state', 'selected');
// set all panels to unselected
const panelsContainer = e.target.parentElement.nextElementSibling;
Array.from(panelsContainer.children).forEach(function (panel) {
panel.setAttribute('data-state', '');
});
const panelId = e.target.getAttribute('aria-controls');
const panel = panelsContainer.querySelector(`#${panelId}`);
panel.setAttribute('data-state', 'selected');
});
});