CryptoIcon: convert to tsx

virtualized-window
Alex Gleason 3 years ago
parent 7e2a74b05d
commit d8bde70043
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7

@ -1,34 +0,0 @@
import classNames from 'classnames';
import PropTypes from 'prop-types';
import React from 'react';
const getIcon = ticker => {
try {
return require(`cryptocurrency-icons/svg/color/${ticker.toLowerCase()}.svg`);
} catch {
return require('cryptocurrency-icons/svg/color/generic.svg');
}
};
export default class CryptoIcon extends React.PureComponent {
static propTypes = {
ticker: PropTypes.string.isRequired,
title: PropTypes.string,
className: PropTypes.string,
}
render() {
const { ticker, title, className } = this.props;
return (
<div className={classNames('crypto-icon', className)}>
<img
src={getIcon(ticker)}
alt={title || ticker}
/>
</div>
);
}
}

@ -0,0 +1,29 @@
import React from 'react';
/** Get crypto icon URL by ticker symbol, or fall back to generic icon */
const getIcon = (ticker: string): string => {
try {
return require(`cryptocurrency-icons/svg/color/${ticker.toLowerCase()}.svg`);
} catch {
return require('cryptocurrency-icons/svg/color/generic.svg');
}
};
interface ICryptoIcon {
ticker: string,
title?: string,
className?: string,
}
const CryptoIcon: React.FC<ICryptoIcon> = ({ ticker, title, className }): JSX.Element => {
return (
<div className={className}>
<img
src={getIcon(ticker)}
alt={title || ticker}
/>
</div>
);
};
export default CryptoIcon;
Loading…
Cancel
Save