design-comuni-plone-theme
Version:
Volto Theme for Italia design guidelines
107 lines (98 loc) • 3.36 kB
JSX
/**
* FooterNavigation components.
* @module components/ItaliaTheme/Footer/FooterNavigation
*/
import { Link } from 'react-router-dom';
import { useSelector } from 'react-redux';
import { defineMessages, useIntl } from 'react-intl';
import { isEqual } from 'lodash';
import { UniversalLink } from '@plone/volto/components';
import { Row, Col, LinkList, LinkListItem } from 'design-react-kit';
import { SectionIcon } from 'design-comuni-plone-theme/components/ItaliaTheme';
import config from '@plone/volto/registry';
const messages = defineMessages({
goToPage: {
id: 'Vai alla pagina',
defaultMessage: 'Vai alla pagina',
},
});
const FooterNavigation = () => {
const intl = useIntl();
const items = useSelector((state) => state.navigation.items, isEqual);
const show_navigation = useSelector(
(state) => state.navigation.show_in_footer,
);
// DEPRECATED: isFooterCollapsed to be removed in version 12
if (config.settings.isFooterCollapsed) {
// eslint-disable-next-line no-console
console.warn(
'DEPRECATED: config.settings.isFooterCollapsed will be removed in version 12. Use config.settings.siteProperties.footerNavigationDepth instead.',
);
}
const markFooterLinks = config.settings.siteProperties.markFooterLinks;
return show_navigation ? (
<>
{items && (
<Row tag="div">
{items.map((item) => (
<Col
lg={3}
md={3}
sm={6}
className="pb-4"
widths={['xs', 'sm', 'md', 'lg', 'xl']}
key={item.url}
>
<h4>
<SectionIcon
section={item.url}
iconProps={{
size: 'sm',
color: 'white',
className: 'me-2',
title: item.title,
}}
/>
<UniversalLink
href={item.url}
title={
intl.formatMessage(messages.goToPage) + ': ' + item.title
}
className={markFooterLinks ? 'underlined' : ''}
>
{item.title}
</UniversalLink>
</h4>
{/* DEPRECATED: isFooterCollapsed to be removed in version 12 */}
{!config.settings.isFooterCollapsed &&
config.settings.siteProperties.footerNavigationDepth > 1 &&
item.items && (
<LinkList className="footer-list clearfix" tag="div">
{item.items.map((subitem) => {
return (
<LinkListItem
key={subitem.url}
href={subitem.url}
tag={UniversalLink}
title={
intl.formatMessage(messages.goToPage) +
': ' +
subitem.title
}
>
{subitem.title}
</LinkListItem>
);
})}
</LinkList>
)}
</Col>
))}
</Row>
)}
</>
) : (
<></>
);
};
export default FooterNavigation;