1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import * as React from 'react';
6 import * as classnames from "classnames";
7 import CloseAnnouncement from '@material-ui/icons/Announcement';
8 import CloseIcon from '@material-ui/icons/Close';
9 import FolderIcon from '@material-ui/icons/Folder';
11 interface IconBaseDataProps {
16 type IconBaseProps = IconBaseDataProps;
18 interface IconBaseState {
22 const getSpecificIcon = (props: any) => ({
23 announcement: <CloseAnnouncement className={props.className} />,
24 folder: <FolderIcon className={props.className} />,
25 close: <CloseIcon className={props.className} />,
26 project: <i className={classnames([props.className, 'fas fa-folder fa-lg'])} />,
27 collection: <i className={classnames([props.className, 'fas fa-archive fa-lg'])} />,
28 process: <i className={classnames([props.className, 'fas fa-cogs fa-lg'])} />
31 class IconBase extends React.Component<IconBaseProps, IconBaseState> {
37 return getSpecificIcon(this.props)[this.props.icon];
41 export default IconBase;