2022-11-25 20:25:03 +00:00
|
|
|
import { CSSProperties } from 'react';
|
2020-10-15 03:13:36 +00:00
|
|
|
import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
|
|
|
|
import tw from 'twin.macro';
|
|
|
|
|
|
|
|
interface Props {
|
|
|
|
icon: IconDefinition;
|
|
|
|
className?: string;
|
|
|
|
style?: CSSProperties;
|
|
|
|
}
|
|
|
|
|
|
|
|
const Icon = ({ icon, className, style }: Props) => {
|
2022-06-26 19:30:05 +00:00
|
|
|
const [width, height, , , paths] = icon.icon;
|
2020-10-15 03:13:36 +00:00
|
|
|
|
|
|
|
return (
|
|
|
|
<svg
|
|
|
|
xmlns={'http://www.w3.org/2000/svg'}
|
|
|
|
viewBox={`0 0 ${width} ${height}`}
|
|
|
|
css={tw`fill-current inline-block`}
|
|
|
|
className={className}
|
|
|
|
style={style}
|
|
|
|
>
|
2022-06-26 19:30:05 +00:00
|
|
|
{(Array.isArray(paths) ? paths : [paths]).map((path, index) => (
|
2022-06-26 19:13:52 +00:00
|
|
|
<path key={`svg_path_${index}`} d={path} />
|
2020-10-15 03:13:36 +00:00
|
|
|
))}
|
|
|
|
</svg>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default Icon;
|