/* eslint-disable @typescript-eslint/no-unsafe-argument */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-call */
import * as React from 'react'
const platformConfigs = {
facebook: {
shareUrl: 'https://www.facebook.com/sharer/sharer.php?u={url}',
icon: (
),
bgColor: '#3b5998',
},
twitter: {
shareUrl: 'https://twitter.com/intent/tweet?text={title}:%20{url}',
icon: (
),
bgColor: '#55acee',
},
linkedin: {
shareUrl: 'http://www.linkedin.com/shareArticle?mini=true&url={url}&title={title}',
icon: (
),
bgColor: '#4875b4',
},
xing: {
shareUrl: 'https://www.xing-share.com/app/user?op=share;sc_p=xing-share;url={url}',
icon: (
),
bgColor: '#026466',
},
email: {
shareUrl: 'mailto:?subject={title}&body={url}',
icon: (
),
bgColor: '#444444',
},
}
// eslint-disable-next-line react/prop-types
const SocialShareButton = ({ platform, url, title }) => {
const config = platformConfigs[platform]
if (!config) {
return null
}
const { shareUrl, icon, bgColor } = config
const finalShareUrl = shareUrl
.replace('{url}', encodeURIComponent(url))
.replace('{title}', encodeURIComponent(title))
return (
{React.cloneElement(icon, { className: 'tw-w-4 tw-h-4 tw-fill-current' })}
)
}
export default SocialShareButton