diff --git a/RELEASE.md b/RELEASE.md index b70f703c5..2427cd91b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -43,10 +43,6 @@ ## Versione x.x.x (xx/xx/xxxx) -### Novità -- Nel template Slider del blocco elenco, ora è possibile scegliere l'aspetto degli elementi dello slider (default: slide semplice con immagine e titolo cliccabile, Card semplice, Card con immagine). -## Versione X.X.X (dd/mm/yyyy) - ### Migliorie - Nel blocco Argomenti in Evidenza, è stata rimossa l'obbligatorietà di aggiungere una card argomento, ora si possono inserire anche solo le etichette. @@ -57,6 +53,8 @@ ### Novità +- Ora i link in testata nell'header slim sono configurabili da pannello di controllo. +- Nel template Slider del blocco elenco, ora è possibile scegliere l'aspetto degli elementi dello slider (default: slide semplice con immagine e titolo cliccabile, Card semplice, Card con immagine). - Nel blocco Argomenti in Evidenza sono state aggiunte due nuove proprietà, una permette di allineare gli "Altri argomenti" al centro e la seconda serve a nascondere o meno il bottone "Vedi tutti" che punta alla pagina argomenti. ### Fix diff --git a/package.json b/package.json index babe4bdfa..e9b4253a4 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,8 @@ "volto-data-grid-widget", "volto-querywidget-with-browser", "@eeacms/volto-taxonomy", - "volto-feedback" + "volto-feedback", + "volto-slimheader" ], "scripts": { "prepare": "husky install", @@ -153,6 +154,7 @@ "volto-querywidget-with-browser": "0.4.2", "volto-rss-block": "3.0.0", "volto-secondarymenu": "4.0.0", + "volto-slimheader": "0.1.0", "volto-social-settings": "3.0.0", "volto-subblocks": "2.0.0", "volto-subfooter": "3.0.0", diff --git a/src/components/ItaliaTheme/Header/HeaderSlim/TertiaryMenu.jsx b/src/components/ItaliaTheme/Header/HeaderSlim/TertiaryMenu.jsx index c871d9f0f..69133bbde 100644 --- a/src/components/ItaliaTheme/Header/HeaderSlim/TertiaryMenu.jsx +++ b/src/components/ItaliaTheme/Header/HeaderSlim/TertiaryMenu.jsx @@ -3,16 +3,39 @@ * @module components/ItaliaTheme/Header/HeaderSlim/TertiaryMenu */ -import React from 'react'; +import React, { useEffect } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { useLocation } from 'react-router-dom'; import { Nav, NavItem, NavLink } from 'design-react-kit'; import { UniversalLink } from '@plone/volto/components'; +import { flattenToAppURL } from '@plone/volto/helpers'; import { useIntl } from 'react-intl'; -import config from '@plone/volto/registry'; +import { getSiteProperty } from 'design-comuni-plone-theme/helpers'; +import { getSlimHeader, getItemsByPath } from 'volto-slimheader'; const TertiaryMenu = () => { const intl = useIntl(); - let menu = config.settings.siteProperties.headerslimTertiaryMenu; - const items = menu[intl.locale]; + const pathname = useLocation().pathname; + const dispatch = useDispatch(); + + const slimHeader = useSelector((state) => state.slimHeader?.result); + const slimHeaderItems = getItemsByPath(slimHeader, pathname) + ?.filter((item) => item.visible) + .map((item) => { + return { + url: item.href || flattenToAppURL(item.linkUrl?.[0]?.['@id']) || '/', + title: item.title, + }; + }); + + const staticMenu = + getSiteProperty('headerslimTertiaryMenu', intl.locale) ?? []; + + useEffect(() => { + dispatch(getSlimHeader()); + }, [dispatch]); + + const items = slimHeaderItems?.length > 0 ? slimHeaderItems : staticMenu; return items?.length > 0 ? (