fileIcon.tsx 631 B

1234567891011121314151617181920212223
  1. import {useTheme} from '@emotion/react';
  2. import {PlatformIcon} from 'platformicons';
  3. import {IconFile} from 'sentry/icons';
  4. import {fileExtensionToPlatform, getFileExtension} from 'sentry/utils/fileExtension';
  5. interface FileIconProps {
  6. fileName: string;
  7. }
  8. function FileIcon({fileName}: FileIconProps) {
  9. const fileExtension = getFileExtension(fileName);
  10. const iconName = fileExtension ? fileExtensionToPlatform(fileExtension) : null;
  11. const theme = useTheme();
  12. if (!iconName) {
  13. return <IconFile size="sm" />;
  14. }
  15. return <PlatformIcon platform={iconName} size={theme.iconSizes.sm} />;
  16. }
  17. export default FileIcon;