diff --git a/src/open_inwoner/accounts/templates/registration/login.html b/src/open_inwoner/accounts/templates/registration/login.html index a3e23c12a9..ae379f8608 100644 --- a/src/open_inwoner/accounts/templates/registration/login.html +++ b/src/open_inwoner/accounts/templates/registration/login.html @@ -17,13 +17,13 @@

{% trans 'Welkom' %}

{# Panel 1 #}
-
+
{% render_grid %} {# Digid #} @@ -127,7 +127,7 @@

Of registreer

{# Panel 1 End #} {# Panel 2 #} -
+
{% render_grid %} {% render_column start=4 span=5 %} diff --git a/src/open_inwoner/js/components/form/LoginForm.js b/src/open_inwoner/js/components/form/LoginForm.js index f87d4dc011..dbc4f63131 100644 --- a/src/open_inwoner/js/components/form/LoginForm.js +++ b/src/open_inwoner/js/components/form/LoginForm.js @@ -50,34 +50,34 @@ export class LoginFormFocus { activateTabFromHash() { const hash = window.location.hash - const particulierLink = document.querySelector( - '.tab__header[href="/accounts/login/#particulier"]' - ) - const zakelijkLink = document.querySelector( - '.tab__header[href="/accounts/login/#zakelijk"]' - ) - const particulierTab = document.getElementById('particulier') - const zakelijkTab = document.getElementById('zakelijk') + const zakelijkTab = document.getElementById('zakelijk_tab') + const particulierTab = document.getElementById('particulier_tab') + const particulierPanel = document.getElementById('particulier_panel') + const zakelijkPanel = document.getElementById('zakelijk_panel') if (hash.includes('zakelijk')) { - particulierLink.classList.remove('active') particulierTab.classList.remove('active') - particulierTab.classList.add('hide') + particulierPanel.classList.remove('active') + particulierPanel.classList.add('hide') - zakelijkTab.classList.remove('hide') + zakelijkPanel.classList.remove('hide') + zakelijkPanel.classList.add('active') zakelijkTab.classList.add('active') - zakelijkLink.classList.add('active') } else { - particulierTab.classList.remove('hide') - particulierLink.classList.add('active') - particulierTab.classList.remove('active') + particulierPanel.classList.remove('hide') + particulierTab.classList.add('active') + particulierPanel.classList.remove('active') - zakelijkTab.classList.add('hide') + zakelijkPanel.classList.add('hide') + zakelijkPanel.classList.remove('active') zakelijkTab.classList.remove('active') - zakelijkLink.classList.remove('active') } } } -const loginformFocuses = document.querySelectorAll(LoginFormFocus.selector) -;[...loginformFocuses].forEach((element) => new LoginFormFocus(element)) +/** + * Controls focustrap and show/hide of login-form elements + */ +document + .querySelectorAll(LoginFormFocus.selector) + .forEach((loginformNode) => new LoginFormFocus(loginformNode)) diff --git a/src/open_inwoner/js/components/tab-panels/index.js b/src/open_inwoner/js/components/tab-panels/index.js index b533fc534b..490d945ccf 100644 --- a/src/open_inwoner/js/components/tab-panels/index.js +++ b/src/open_inwoner/js/components/tab-panels/index.js @@ -51,22 +51,36 @@ export class TabPanel { } } -const tabpanels = document.querySelectorAll(TabPanel.selector) -;[...tabpanels].forEach((tabpanel) => new TabPanel(tabpanel)) +/** + * Controls which tabs are active + */ +document + .querySelectorAll(TabPanel.selector) + .forEach((tabpanel) => new TabPanel(tabpanel)) -// Activate tab from hash on page load -// Relies on instantiated TabPanel instances +/** + * Activate Zakelijk tab from hash on page load, when coming from external link. + * Relies on instantiated TabPanel instances. + */ window.addEventListener('load', () => { - const hash = window.location.hash - if (hash) { - const tabHeader = document.querySelector(`.tab__header[href="${hash}"]`) - if (tabHeader) { - const index = [...tabHeader.parentNode.children].indexOf(tabHeader) - const tabPanel = tabHeader.closest('.tab--container') - const tabPanelInstance = tabPanel && tabPanel.TabPanel - if (tabPanelInstance) { - tabPanelInstance.showContent(index) - } + const tabHeaders = document.querySelectorAll('.tab__header[data-panel]') + tabHeaders.forEach((tabHeader) => { + const panelId = tabHeader.dataset.panel + const panel = document.getElementById(panelId) + if (panel) { + tabHeader.addEventListener('click', () => { + // Hide all panels, ensuring only one panel is visible at a time + document.querySelectorAll('.tab__content').forEach((panel) => { + panel.classList.remove('active') + }) + // Activate panel + panel.classList.add('active') + // Activate tab + tabHeaders.forEach((header) => { + header.classList.remove('active') + }) + tabHeader.classList.add('active') + }) } - } + }) }) diff --git a/src/open_inwoner/scss/components/TabPanel/TabPanel.scss b/src/open_inwoner/scss/components/TabPanel/TabPanel.scss index 9eb94c2fe9..d0d0fbd929 100644 --- a/src/open_inwoner/scss/components/TabPanel/TabPanel.scss +++ b/src/open_inwoner/scss/components/TabPanel/TabPanel.scss @@ -136,7 +136,7 @@ .login-tab--container { .list-item.tab__header--item { - min-width: 100px; + min-width: 50%; @media (min-width: 500px) { min-width: 180px; @@ -163,6 +163,7 @@ color: var(--color-accent); font-weight: bold; margin: 0; + text-decoration: none; } }