2016-10-23 23:48:06 +13:00
|
|
|
|
2019-04-11 08:05:53 +12:00
|
|
|
import React, { memo } from 'react';
|
2018-05-15 21:30:57 +12:00
|
|
|
import FontAwesome from 'react-fontawesome';
|
2016-10-23 23:48:06 +13:00
|
|
|
|
2020-03-05 21:32:54 +13:00
|
|
|
export default memo(({ name, type, className, onClick }) => {
|
|
|
|
|
if (!name || name === '') return null;
|
2019-09-05 15:36:11 +12:00
|
|
|
|
2020-06-09 21:09:29 +12:00
|
|
|
const fullClassName = `icon icon--${type || 'material'} ${className || ''}`;
|
2019-09-05 15:36:11 +12:00
|
|
|
|
2020-03-05 21:32:54 +13:00
|
|
|
switch (type) {
|
2019-09-05 15:36:11 +12:00
|
|
|
case 'svg':
|
2020-03-05 21:32:54 +13:00
|
|
|
return <img className={fullClassName} src={`/iris/assets/icons/${name}.svg`} onClick={onClick} />;
|
2019-09-05 15:36:11 +12:00
|
|
|
|
|
|
|
|
case 'gif':
|
2020-03-05 21:32:54 +13:00
|
|
|
return <img className={fullClassName} src={`/iris/assets/icons/${name}.gif`} onClick={onClick} />;
|
2019-09-05 15:36:11 +12:00
|
|
|
|
|
|
|
|
case 'fontawesome':
|
2020-03-05 21:32:54 +13:00
|
|
|
return <FontAwesome className={fullClassName} type="fontawesome" name={name} onClick={onClick} />;
|
2019-09-05 15:36:11 +12:00
|
|
|
|
|
|
|
|
case 'css':
|
2020-03-05 21:32:54 +13:00
|
|
|
if (name === 'playing') {
|
|
|
|
|
return (
|
|
|
|
|
<i className={`${fullClassName} icon--playing`}>
|
|
|
|
|
<span />
|
|
|
|
|
<span />
|
|
|
|
|
<span />
|
|
|
|
|
</i>
|
|
|
|
|
);
|
2019-09-05 15:36:11 +12:00
|
|
|
}
|
2020-03-05 21:32:54 +13:00
|
|
|
break;
|
2019-09-05 15:36:11 +12:00
|
|
|
|
|
|
|
|
default:
|
2020-03-05 21:32:54 +13:00
|
|
|
return <i className={fullClassName} onClick={onClick}>{name}</i>;
|
2019-09-05 15:36:11 +12:00
|
|
|
}
|
2020-03-05 21:32:54 +13:00
|
|
|
});
|