52 lines
1.1 KiB
JavaScript
Raw Normal View History

2018-02-19 14:23:47 +01:00
/**
*
*
* FileIcon
*/
import React from 'react';
import PropTypes from 'prop-types';
2018-02-26 12:16:15 +01:00
import { trim } from 'lodash';
2018-02-19 14:23:47 +01:00
import ext from './extensions.json';
import Wrapper from './Wrapper';
2018-02-19 14:23:47 +01:00
function FileIcon({ fileType }) {
2018-02-22 12:55:13 +01:00
const iconType = (() => {
switch (true) {
2018-02-26 12:16:15 +01:00
case ext.archive.includes(trim(fileType, '.')):
return 'file-archive-o';
2018-02-26 12:16:15 +01:00
case ext.code.includes(trim(fileType, '.')):
return 'file-code-o';
2018-02-26 12:16:15 +01:00
case ext.img.includes(trim(fileType, '.')):
return 'file-image-o';
2018-02-26 12:16:15 +01:00
case ext.pdf.includes(trim(fileType, '.')):
return 'file-pdf-o';
2018-02-26 12:16:15 +01:00
case ext.powerpoint.includes(trim(fileType, '.')):
return 'file-powerpoint-o';
2018-02-26 12:16:15 +01:00
case ext.video.includes(trim(fileType, '.')):
return 'file-video-o';
2018-02-26 12:16:15 +01:00
case ext.word.includes(trim(fileType, '.')):
return 'file-word-o';
2018-02-22 12:55:13 +01:00
default:
return 'file';
2018-02-22 14:01:24 +01:00
}
2018-02-22 12:55:13 +01:00
})();
2018-02-19 14:23:47 +01:00
return (
<Wrapper type={iconType}>
<i className={`fa fa-${iconType}`} />
</Wrapper>
2018-02-19 14:23:47 +01:00
);
}
FileIcon.defaultProps = {
fileType: 'zip',
};
FileIcon.propTypes = {
fileType: PropTypes.string,
};
export default FileIcon;