albert.lol/src/components/Icon.tsx
2023-12-27 15:44:17 +01:00

51 lines
1 KiB
TypeScript

import { socials } from '@/components/data/Socials'
import copy from 'copy-to-clipboard'
import toast from 'react-hot-toast'
import Link from 'next/link'
type Icon = {
children: React.ReactNode
reference: string
copyValue?: boolean
}
const notify = () => {
toast.remove(),
toast.success('Copied to clipboard', {
style: {
background: '#0f1012',
color: '#fff',
fontSize: '1em',
},
})
}
export const Icon = ({ children, reference, copyValue }: Icon) => {
if (copyValue) {
return (
<Link
href={''}
className={`cursor-pointer`}
aria-label={
socials.find((social) => social.ref === reference)?.ariaLabel
}
onClick={() => {
notify(), copy(reference)
}}
>
{children}
</Link>
)
}
return (
<Link
href={reference}
target='_blank'
className={'cursor-pointer'}
aria-label={socials.find((social) => social.ref === reference)?.ariaLabel}
>
{children}
</Link>
)
}