Files
Iris/src/js/components/Icon.js
2020-06-09 21:09:29 +12:00

36 lines
1023 B
JavaScript
Executable File

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