src/components/blog/BlogPostItem/Footer/index.tsx (73 lines of code) (raw):
import React from 'react';
import Link from '@docusaurus/Link';
import Translate from '@docusaurus/Translate';
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
// @ts-ignore
import { useBlogPost } from '@docusaurus/theme-common/internal';
import {
FacebookShareButton,
LinkedinShareButton,
TwitterShareButton,
} from "react-share";
import EditThisPage from '@theme/EditThisPage';
import Icon from '@site/src/components/Icon';
import styles from './index.module.css';
const Index = () => {
const { metadata } = useBlogPost();
const {
siteConfig: { url },
} = useDocusaurusContext();
return (
<div className='mt-3'>
{metadata.tags.length > 0 && (
<div className='mb-3'>
<span>
<Translate id="blogPostItem.tags">
Tags:
</Translate>
</span>
{' '}
{metadata.tags.map((tag,index) => {
return (
<span key={tag.label}>
<Link
to={tag.permalink}>
{tag.label}
</Link>
{index === metadata.tags.length - 1 ? '' : ', '}
</span>
)
})}
</div>
)}
<div className="d-flex align-items-center text-secondary">
<span>
<Translate id="blogPostItem.share">
Share to
</Translate>
</span>
<TwitterShareButton
className={styles.shareBtn}
title={metadata.title}
url={url + metadata.permalink}>
<Icon name="twitter" size="16px" />
</TwitterShareButton>
<FacebookShareButton
className={styles.shareBtn}
title={metadata.title}
url={url + metadata.permalink}>
<Icon name="facebook" size="16px" />
</FacebookShareButton>
<LinkedinShareButton
className={styles.shareBtn}
title={metadata.title}
url={url + metadata.permalink}
source={url}
summary={metadata.description}
>
<Icon name="linkedin" size="16px" />
</LinkedinShareButton>
</div>
<div className='mt-4'>
<EditThisPage editUrl={metadata.editUrl} />
</div>
</div>
)
}
export default Index;