@scientist-softserv/webstore-component-library
Version:
A React component library intended for use with WebStore applications
45 lines (39 loc) • 1.66 kB
JSX
import React from 'react'
import PropTypes from 'prop-types'
import FaceBook from '../../assets/svg/FaceBook'
import Instagram from '../../assets/svg/Instagram'
import Rss from '../../assets/svg/Rss'
import TikTok from '../../assets/svg/TikTok'
import Twitter from '../../assets/svg/Twitter'
import Vimeo from '../../assets/svg/Vimeo'
import YouTube from '../../assets/svg/YouTube'
import LinkedIn from '../../assets/svg/LinkedIn'
import './social-icon.css'
const iconsList = {
facebook: (height, color) => <FaceBook height={height} fill={color} />,
instagram: (height, color) => <Instagram height={height} fill={color} />,
rss: (height, color) => <Rss height={height} fill={color} />,
tiktok: (height, color) => <TikTok height={height} fill={color} />,
twitter: (height, color) => <Twitter height={height} fill={color} />,
vimeo: (height, color) => <Vimeo height={height} fill={color} />,
youtube: (height, color) => <YouTube height={height} fill={color} />,
linkedin: (height, color) => <LinkedIn height={height} fill={color}/>,
}
const SocialIcon = ({ addClass, color, height, icon, url }) => (
<a href={url} target='_blank' className={`social-icon social-icon-${icon} ${addClass}`} rel='noreferrer'>
{iconsList[icon](height || 25, color)}
</a>
)
SocialIcon.propTypes = {
addClass: PropTypes.string,
color: PropTypes.string,
height: PropTypes.number,
icon: PropTypes.oneOf(['facebook', 'instagram', 'rss', 'tiktok', 'twitter', 'vimeo', 'youtube', 'linkedin']).isRequired,
url: PropTypes.string.isRequired,
}
SocialIcon.defaultProps = {
addClass: '',
color: '#000000',
height: 25,
}
export default SocialIcon