UNPKG

@scientist-softserv/webstore-component-library

Version:

A React component library intended for use with WebStore applications

45 lines (39 loc) 1.66 kB
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