@music-loopy/loops
Version:
A React component library for Music Loopy Applications and websites
109 lines • 4.47 kB
JavaScript
var _excluded = ["name", "size", "fill"];
var _templateObject;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
function _taggedTemplateLiteralLoose(e, t) { return t || (t = e.slice(0)), e.raw = t, e; }
import React from 'react';
import apple from './icons/apple';
import facebook from './icons/facebook';
import google from './icons/google';
import instagram from './icons/instagram';
import linkedin from './icons/linkedin';
import home from './icons/home';
import profile from './icons/profile';
import musicUser from './icons/music-user';
import genderPeople from './icons/gender-people';
import styled, { useTheme } from 'styled-components';
import { HiUserGroup } from 'react-icons/hi2';
import { PiWechatLogoBold } from 'react-icons/pi';
import PropTypes from 'prop-types';
import { CiLock } from 'react-icons/ci';
import { CiUser } from 'react-icons/ci';
import { CiCircleCheck } from 'react-icons/ci';
import { CiCircleChevUp } from 'react-icons/ci';
import { CiCircleChevDown } from 'react-icons/ci';
import { FaRegEnvelope } from 'react-icons/fa6';
import { FaRegFlag } from 'react-icons/fa6';
import { IoLocationOutline } from 'react-icons/io5';
import { HiIdentification } from 'react-icons/hi2';
import { BiDetail } from 'react-icons/bi';
import { TbMusicStar } from 'react-icons/tb';
import { IoLanguage } from 'react-icons/io5';
import { PiGuitar } from 'react-icons/pi';
import { IoMdMusicalNote } from 'react-icons/io';
import { FaPeopleRoof } from 'react-icons/fa6';
import { FaUpload } from 'react-icons/fa6';
import { HiDotsVertical } from 'react-icons/hi';
import { MdOutlineStarBorder } from 'react-icons/md';
import { FaRegStar } from 'react-icons/fa6';
import { IoChevronBackOutline } from 'react-icons/io5';
import { MdOutlineContentPasteSearch } from 'react-icons/md';
import { LuFileSearch } from 'react-icons/lu';
import { HiMiniUserCircle } from 'react-icons/hi2';
import { IconContext } from 'react-icons';
import { FaApple, FaLinkedin, FaChevronLeft, FaGoogle, FaStar } from 'react-icons/fa';
import { FaFacebook } from 'react-icons/fa6';
import { GrHomeRounded } from 'react-icons/gr';
import { MdOutlineManageSearch } from 'react-icons/md';
import { AiFillInstagram } from 'react-icons/ai';
var StyledSVGContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([""])));
var Icon = function Icon(_ref) {
var name = _ref.name,
size = _ref.size,
fill = _ref.fill,
props = _objectWithoutPropertiesLoose(_ref, _excluded);
console.log(name, size);
var icons = {
apple: FaApple,
facebook: FaFacebook,
google: FaGoogle,
instagram: AiFillInstagram,
linkedin: FaLinkedin,
musicUser: musicUser,
genderPeople: genderPeople,
chat: PiWechatLogoBold,
collaborate: HiUserGroup,
home: GrHomeRounded,
profile: HiMiniUserCircle,
user: CiUser,
lock: CiLock,
check: CiCircleCheck,
up: CiCircleChevUp,
down: CiCircleChevDown,
email: FaRegEnvelope,
flag: FaRegFlag,
location: IoLocationOutline,
id: HiIdentification,
detail: BiDetail,
musicStar: TbMusicStar,
language: IoLanguage,
guitar: PiGuitar,
song: IoMdMusicalNote,
peopleRoof: FaPeopleRoof,
upload: FaUpload,
dots: HiDotsVertical,
'star-outline': FaRegStar,
star: FaStar,
back: FaChevronLeft,
docSearch: MdOutlineManageSearch
};
var SVGIcon = icons[name];
var theme = useTheme();
var color = theme.colors[fill || 'primary'].color;
return /*#__PURE__*/React.createElement(StyledSVGContainer, _extends({
size: size
}, props), /*#__PURE__*/React.createElement(IconContext.Provider, {
value: {
color: color,
className: 'global-class-name'
}
}, /*#__PURE__*/React.createElement(SVGIcon, {
size: size
})));
};
export default Icon;
Icon.propTypes = process.env.NODE_ENV !== "production" ? {
name: PropTypes.string.isRequired,
size: PropTypes.string,
fill: PropTypes.oneOf(['primary', 'dark', 'light', 'secondary', 'danger', 'success', 'warning'])
} : {};