Files
Iris/src/js/components/Icon.js
James Barnsley e4d53a2d35 Auto eslint fix
2019-09-05 15:36:11 +12:00

41 lines
1.2 KiB
JavaScript
Executable File

import React, { memo } from 'react';
import FontAwesome from 'react-fontawesome';
export default memo((props) => {
if (!props.name || props.name === '') {
return null;
}
let className = `icon icon--${props.type ? props.type : 'material'}`;
if (props.className) {
className += ` ${props.className}`;
}
switch (props.type) {
case 'svg':
return <img className={className} src={`/iris/assets/icons/${props.name}.svg`} onClick={(e) => (props.onClick ? props.onClick(e) : null)} />;
case 'gif':
return <img className={className} src={`/iris/assets/icons/${props.name}.gif`} onClick={(e) => (props.onClick ? props.onClick(e) : null)} />;
case 'fontawesome':
return <FontAwesome className={className} type="fontawesome" name={props.name} onClick={(e) => (props.onClick ? props.onClick(e) : null)} />;
case 'css':
switch (props.name) {
case 'playing':
return (
<i className={`${className} icon--playing`}>
<span />
<span />
<span />
</i>
);
}
default:
return <i className={className} onClick={(e) => (props.onClick ? props.onClick(e) : null)}>{props.name}</i>;
}
});