From 1d690db9e8dd75882bda48f827362c06f15501b0 Mon Sep 17 00:00:00 2001 From: Wagner Trezub Date: Tue, 30 Sep 2025 09:06:09 +0200 Subject: [PATCH 1/3] feat: script to hide links on header edit page --- .../volto/components/theme/Header/Header.jsx | 50 ++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/src/customizations/volto/components/theme/Header/Header.jsx b/src/customizations/volto/components/theme/Header/Header.jsx index 41c14c664..ddb31cd4c 100644 --- a/src/customizations/volto/components/theme/Header/Header.jsx +++ b/src/customizations/volto/components/theme/Header/Header.jsx @@ -3,7 +3,7 @@ * @module components/theme/Header/Header */ -import React /*, { useEffect, useState } */ from 'react'; +import React, { useEffect } from 'react'; import PropTypes from 'prop-types'; @@ -21,7 +21,55 @@ import { } from 'design-comuni-plone-theme/components/ItaliaTheme'; import { Headers } from 'design-react-kit'; +const useDisableHeaderInteractions = () => { + useEffect(() => { + const body = document.body; + + const disableHeader = () => { + if ( + body.classList.contains('cms-ui') && + body.classList.contains('section-edit') + ) { + const header = document.querySelector('header'); + if (!header) return; + + const focusables = header.querySelectorAll( + 'a, button, input, select, textarea, [tabindex]', + ); + const socials = header.querySelectorAll('.it-socials a'); + + [...focusables, ...socials].forEach((el) => { + el.setAttribute('tabindex', '-1'); + el.setAttribute('aria-hidden', 'true'); + // el.style.pointerEvents = 'none'; - disabilitare il mouse click? + }); + } + }; + + disableHeader(); + + const bodyObserver = new MutationObserver(disableHeader); + bodyObserver.observe(body, { + attributes: true, + attributeFilter: ['class'], + }); + + const header = document.querySelector('header'); + let headerObserver; + if (header) { + headerObserver = new MutationObserver(disableHeader); + headerObserver.observe(header, { childList: true, subtree: true }); + } + + return () => { + bodyObserver.disconnect(); + headerObserver?.disconnect(); + }; + }, []); +}; + const Header = ({ pathname }) => { + useDisableHeaderInteractions(); // const [mini, setMini] = useState(false); // const handleScroll = () => { From ab51347915b32892bc4231ae88f8776828166e93 Mon Sep 17 00:00:00 2001 From: Wagner Trezub Date: Tue, 30 Sep 2025 09:15:20 +0200 Subject: [PATCH 2/3] fix: changed const --- .../volto/components/theme/Header/Header.jsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/customizations/volto/components/theme/Header/Header.jsx b/src/customizations/volto/components/theme/Header/Header.jsx index ddb31cd4c..9761dbf4a 100644 --- a/src/customizations/volto/components/theme/Header/Header.jsx +++ b/src/customizations/volto/components/theme/Header/Header.jsx @@ -34,14 +34,13 @@ const useDisableHeaderInteractions = () => { if (!header) return; const focusables = header.querySelectorAll( - 'a, button, input, select, textarea, [tabindex]', + 'a, button, input, select, textarea, [tabindex], .it-socials a', ); - const socials = header.querySelectorAll('.it-socials a'); - [...focusables, ...socials].forEach((el) => { - el.setAttribute('tabindex', '-1'); - el.setAttribute('aria-hidden', 'true'); - // el.style.pointerEvents = 'none'; - disabilitare il mouse click? + [...focusables].forEach((item) => { + item.setAttribute('tabindex', '-1'); + item.setAttribute('aria-hidden', 'true'); + // item.style.pointerEvents = 'none'; - disabilitare il mouse click? }); } }; From b716c1c698e5e3803594a333d3d11a9381df1441 Mon Sep 17 00:00:00 2001 From: Wagner Trezub Date: Tue, 30 Sep 2025 09:19:39 +0200 Subject: [PATCH 3/3] fix: tabIndex --- src/customizations/volto/components/theme/Header/Header.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/customizations/volto/components/theme/Header/Header.jsx b/src/customizations/volto/components/theme/Header/Header.jsx index 9761dbf4a..2a40473f3 100644 --- a/src/customizations/volto/components/theme/Header/Header.jsx +++ b/src/customizations/volto/components/theme/Header/Header.jsx @@ -38,7 +38,7 @@ const useDisableHeaderInteractions = () => { ); [...focusables].forEach((item) => { - item.setAttribute('tabindex', '-1'); + item.setAttribute('tabIndex', '-1'); item.setAttribute('aria-hidden', 'true'); // item.style.pointerEvents = 'none'; - disabilitare il mouse click? });