blob: 518e81b6551316fa0c2c2c15716b6d32913fce46 [file] [log] [blame]
/* eslint-disable react/prop-types */
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import type { FC } from 'react';
import React from 'react';
import Link from '@docusaurus/Link';
import useBaseUrl from '@docusaurus/useBaseUrl';
import { Icon } from '@iconify/react';
import githubIcon from '@iconify/icons-akar-icons/github-fill';
import twitterIcon from '@iconify/icons-akar-icons/twitter-fill';
import linkedInIcon from '@iconify/icons-akar-icons/linkedin-fill';
import { LazyLoadImage } from 'react-lazy-load-image-component';
import style from './styles.module.scss';
const footer = {
links: [
{
title: 'ASF',
items: [
{
label: 'Foundation',
to: 'https://www.apache.org/',
},
{
label: 'License',
to: 'https://www.apache.org/licenses/',
},
{
label: 'Events',
to: 'https://www.apache.org/events/',
},
{
label: 'Security',
to: 'https://www.apache.org/security/',
},
{
label: 'Sponsorship',
to: 'https://www.apache.org/foundation/sponsorship.html',
},
{
label: 'Thanks',
to: 'https://www.apache.org/foundation/thanks.html',
},
],
},
{
title: 'Community',
items: [
{
icon: githubIcon,
label: 'GitHub Issues',
to: 'https://github.com/apache/streampipes/issues',
},
{
icon: githubIcon,
label: 'Github Discussions',
to: 'https://github.com/apache/streampipes/issues',
},
{
icon: twitterIcon,
label: 'Twitter',
to: 'https://twitter.com/StreamPipes',
},
{
icon: linkedInIcon,
label: 'LinkedIn',
to: 'https://www.linkedin.com/company/apache-streampipes',
},
],
},
{
title: 'More',
items: [
{
label: 'Blog',
to: '/blog/',
target: '_parent',
}, {
label: 'Privacy',
to: 'https://privacy.apache.org/policies/privacy-policy-public.html',
target: '_parent',
}
],
},
],
logo: {
alt: 'Apache Software Foundation',
src: '/img/asf_logo_wide_small.avif',
href: 'https://www.apache.org/',
},
copyright:
`Copyright © 2019-${new Date().getFullYear()} The Apache Software Foundation. Apache StreamPipes, Apache, the Apache feather logo, and the Apache StreamPipes project logo are either registered trademarks or trademarks of the Apache Software Foundation.`,
};
const FooterLink = ({
to, icon, href, label, prependBaseUrlToHref, ...props
}) => {
const toUrl = useBaseUrl(to);
const normalizedHref = useBaseUrl(href, {
forcePrependBaseUrl: true,
});
const hrefObj = href
? {href: prependBaseUrlToHref ? normalizedHref : href}
: {to: toUrl};
return (
<Link
{...hrefObj}
{...props}
>
<Icon icon={icon}/>
<span>{label}</span>
</Link>
);
};
const Footer: FC = () => {
const {copyright, links, logo} = footer;
if (!footer) {
return null;
}
return (
<footer className={style.container}>
{links && links.length > 0 && (
<div className={style.linksRow}>
{links.map(({title, items}) => (
<div key={title} className={style.linksCol}>
<div>{title}</div>
<ul>
{items.map((v) => (
<li key={v.to} className="footer__item">
<FooterLink {...v} />
</li>
))}
</ul>
</div>
))}
</div>
)}
<div className={style.copyright}>
<Link href={logo.href}>
<LazyLoadImage alt={logo.alt} src={logo.src} height="40px" width="231.25px"/>
</Link>
<div className={style.text}>{copyright}</div>
</div>
</footer>
);
};
export default Footer;