add all icons to icon component, refactor code and change icons
authorJanicki Artur <artur.janicki@contractors.roche.com>
Wed, 11 Jul 2018 13:15:49 +0000 (15:15 +0200)
committerJanicki Artur <artur.janicki@contractors.roche.com>
Tue, 17 Jul 2018 08:13:07 +0000 (10:13 +0200)
Feature #13764

Arvados-DCO-1.1-Signed-off-by: Janicki Artur <artur.janicki@contractors.roche.com>

14 files changed:
src/components/details-panel-factory/items/abstract-item.tsx
src/components/details-panel-factory/items/collection-item.tsx
src/components/details-panel-factory/items/empty-item.tsx
src/components/details-panel-factory/items/process-item.tsx
src/components/details-panel-factory/items/project-item.tsx
src/components/dropdown-menu/dropdown-menu.test.tsx
src/components/dropdown-menu/dropdown-menu.tsx
src/components/empty-state/empty-state.tsx
src/components/icon/icon.tsx
src/components/side-panel/side-panel.tsx
src/store/side-panel/side-panel-reducer.test.ts
src/store/side-panel/side-panel-reducer.ts
src/views-components/details-panel/details-panel.tsx
src/views-components/main-app-bar/main-app-bar.tsx

index a50c867be1493ed29d5695afb2f71a0927eeeaa6..d5e46a26ebec246f8dd50a1266775b218e2284d7 100644 (file)
@@ -3,7 +3,6 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as React from 'react';
-import { IconTypes } from '../../icon/icon';
 import { DetailsPanelResource } from '../../../views-components/details-panel/details-panel';
 
 export default abstract class AbstractItem<T extends DetailsPanelResource = DetailsPanelResource> {
@@ -14,7 +13,7 @@ export default abstract class AbstractItem<T extends DetailsPanelResource = Deta
         return this.item.name;
     }
   
-    abstract getIcon(): IconTypes;
+    abstract getIcon(className?: string): React.ReactElement<any>;
     abstract buildDetails(): React.ReactElement<any>;
     
     buildActivity(): React.ReactElement<any> {
index 9b978eacf47f02506cff383464261ac717aaa97b..1c8bd00fd193ecf699e172b1ff5fc42efdcd0736 100644 (file)
@@ -3,7 +3,7 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as React from 'react';
-import { IconTypes } from '../../icon/icon';
+import { CollectionIcon } from '../../icon/icon';
 import Attribute from '../../attribute/attribute';
 import AbstractItem from './abstract-item';
 import { CollectionResource } from '../../../models/collection';
@@ -13,8 +13,8 @@ import { ResourceKind } from '../../../models/resource';
 
 export default class CollectionItem extends AbstractItem<CollectionResource> {
 
-    getIcon(): IconTypes {
-        return IconTypes.COLLECTION;
+    getIcon(className?: string): React.ReactElement<any> {
+        return CollectionIcon(className);
     }
 
     buildDetails(): React.ReactElement<any> {
index 38ef96787fda7eb6bf5cc1abfa47349f0391c65a..356ccc2cf9a3e5d91e918a4263dcaea1adf3fd8d 100644 (file)
@@ -3,19 +3,19 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as React from 'react';
-import { IconTypes } from '../../icon/icon';
+import { DefaultIcon, ProjectsIcon } from '../../icon/icon';
 import AbstractItem from './abstract-item';
 import EmptyState from '../../empty-state/empty-state';
 import { EmptyResource } from '../../../models/empty';
 
 export default class EmptyItem extends AbstractItem<EmptyResource> {
     
-    getIcon(): IconTypes {
-        return IconTypes.INBOX;
+    getIcon(className?: string): React.ReactElement<any> {
+        return ProjectsIcon(className);
     }
 
     buildDetails(): React.ReactElement<any> {
-        return <EmptyState icon={IconTypes.RATE_REVIEW}
+        return <EmptyState icon={DefaultIcon}
             message='Select a file or folder to view its details.' />;
     }
 }
\ No newline at end of file
index efc3ee767a9e88600e642943af65f0a3e7186f3c..66a6071bc34e8c83f0b32413cfd6f2a52e58edd9 100644 (file)
@@ -3,7 +3,7 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as React from 'react';
-import { IconTypes } from '../../icon/icon';
+import { ProcessIcon } from '../../icon/icon';
 import Attribute from '../../attribute/attribute';
 import AbstractItem from './abstract-item';
 import { ProcessResource } from '../../../models/process';
@@ -13,8 +13,8 @@ import { resourceLabel } from '../../../common/labels';
 
 export default class ProcessItem extends AbstractItem<ProcessResource> {
 
-    getIcon(): IconTypes {
-        return IconTypes.BUBBLE_CHART;
+    getIcon(className?: string): React.ReactElement<any> {
+        return ProcessIcon(className);
     }
 
     buildDetails(): React.ReactElement<any> {
index eb4698e5aeae19494494aeac0091280b2df1abc6..6d8ad04ea453dd95f36ca3a2c7272f9fe6f77643 100644 (file)
@@ -3,7 +3,7 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as React from 'react';
-import { IconTypes } from '../../icon/icon';
+import { ProjectIcon } from '../../icon/icon';
 import Attribute from '../../attribute/attribute';
 import AbstractItem from './abstract-item';
 import { ProjectResource } from '../../../models/project';
@@ -13,8 +13,8 @@ import { resourceLabel } from '../../../common/labels';
 
 export default class ProjectItem extends AbstractItem<ProjectResource> {
 
-    getIcon(): IconTypes {
-        return IconTypes.FOLDER;
+    getIcon(className?: string): React.ReactElement<any> {
+        return ProjectIcon(className);
     }
 
     buildDetails(): React.ReactElement<any> {
index 54957f3772887aa06e2a56772267c1bf309c3b6f..08f5e0f8116e1f7730f0a9e253d2e1c410b989c7 100644 (file)
@@ -5,23 +5,22 @@
 import * as React from "react";
 import { shallow, configure } from "enzyme";
 import DropdownMenu from "./dropdown-menu";
-import ChevronRightIcon from '@material-ui/icons/ChevronRight';
-
 import * as Adapter from 'enzyme-adapter-react-16';
 import { MenuItem, IconButton, Menu } from "@material-ui/core";
-import IconBase, { IconTypes } from "../icon/icon";
+import { PaginationRightArrowIcon } from "../icon/icon";
+import ChevronRight from '@material-ui/icons/ChevronRight';
 
 configure({ adapter: new Adapter() });
 
 describe("<DropdownMenu />", () => {
     it("renders menu icon", () => {
-        const dropdownMenu = shallow(<DropdownMenu id="test-menu" icon={IconTypes.CHEVRON_RIGHT} />);
-        expect(dropdownMenu.find(IconBase)).toHaveLength(1);
+        const dropdownMenu = shallow(<DropdownMenu id="test-menu" icon={PaginationRightArrowIcon()} />);
+        expect(dropdownMenu.find(ChevronRight)).toHaveLength(1);
     });
 
     it("render menu items", () => {
         const dropdownMenu = shallow(
-            <DropdownMenu id="test-menu" icon={IconTypes.CHEVRON_RIGHT}>
+            <DropdownMenu id="test-menu" icon={PaginationRightArrowIcon()}>
                 <MenuItem>Item 1</MenuItem>
                 <MenuItem>Item 2</MenuItem>
             </DropdownMenu>
@@ -30,13 +29,13 @@ describe("<DropdownMenu />", () => {
     });
 
     it("opens on menu icon click", () => {
-        const dropdownMenu = shallow(<DropdownMenu id="test-menu" icon={IconTypes.CHEVRON_RIGHT} />);
+        const dropdownMenu = shallow(<DropdownMenu id="test-menu" icon={PaginationRightArrowIcon()} />);
         dropdownMenu.find(IconButton).simulate("click", {currentTarget: {}});
         expect(dropdownMenu.state().anchorEl).toBeDefined();
     });
     
     it("closes on menu click", () => {
-        const dropdownMenu = shallow(<DropdownMenu id="test-menu" icon={IconTypes.CHEVRON_RIGHT} />);
+        const dropdownMenu = shallow(<DropdownMenu id="test-menu" icon={PaginationRightArrowIcon()} />);
         dropdownMenu.find(Menu).simulate("click", {currentTarget: {}});
         expect(dropdownMenu.state().anchorEl).toBeUndefined();
     });
index af9e551bd7a306c888d7f105b1cf9fe0a346fb04..98c29c6416af047554c103bfba0ef8eb3f61a7d1 100644 (file)
@@ -6,11 +6,10 @@ import * as React from 'react';
 import Menu from '@material-ui/core/Menu';
 import IconButton from '@material-ui/core/IconButton';
 import { PopoverOrigin } from '@material-ui/core/Popover';
-import IconBase, { IconTypes } from '../icon/icon';
 
 interface DropdownMenuProps {
     id: string;
-    icon: IconTypes;
+    icon: React.ReactElement<any>;
 }
 
 class DropdownMenu extends React.Component<DropdownMenuProps> {
@@ -34,7 +33,7 @@ class DropdownMenu extends React.Component<DropdownMenuProps> {
                     aria-haspopup="true"
                     color="inherit"
                     onClick={this.handleOpen}>
-                    <IconBase icon={icon} />
+                    {icon}
                 </IconButton>
                 <Menu
                     id={id}
@@ -43,8 +42,7 @@ class DropdownMenu extends React.Component<DropdownMenuProps> {
                     onClose={this.handleClose}
                     onClick={this.handleClose}
                     anchorOrigin={this.transformOrigin}
-                    transformOrigin={this.transformOrigin}
-                >
+                    transformOrigin={this.transformOrigin}>
                     {children}
                 </Menu>
             </div>
index 205053b5ce7f738a1ba2b1627c5d4fb7b86b1c4b..3c21eca3632267160b9f39e918d179fb5172e842 100644 (file)
@@ -6,11 +6,10 @@ import * as React from 'react';
 import Typography from '@material-ui/core/Typography';
 import { WithStyles, withStyles, StyleRulesCallback } from '@material-ui/core/styles';
 import { ArvadosTheme } from 'src/common/custom-theme';
-import IconBase, { IconTypes } from '../icon/icon';
 
 export interface EmptyStateDataProps {
     message: string;
-    icon: IconTypes;
+    icon: (className?: string) => React.ReactElement<any>;
     details?: string;
 }
 
@@ -22,7 +21,7 @@ class EmptyState extends React.Component<EmptyStateProps, {}> {
         const { classes, message, details, icon, children } = this.props;
         return (
             <Typography className={classes.container} component="div">
-                <IconBase icon={icon} className={classes.icon} />
+                {icon(classes.icon)}
                 <Typography variant="body1" gutterBottom>{message}</Typography>
                 { details && <Typography gutterBottom>{details}</Typography> }
                 { children && <Typography gutterBottom>{children}</Typography> }
index ef16ced6c53640b9d5282f351cd7173fc1b5226a..9c0faac0d8d9a38c9096b3b6707a030dae3769e3 100644 (file)
@@ -3,10 +3,7 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as React from 'react';
-import * as classnames from "classnames";
-
 import AccessTime from '@material-ui/icons/AccessTime';
-import Announcement from '@material-ui/icons/Announcement';
 import ArrowDropDown from '@material-ui/icons/ArrowDropDown';
 import BubbleChart from '@material-ui/icons/BubbleChart';
 import Cached from '@material-ui/icons/Cached';
@@ -18,7 +15,7 @@ import ContentCopy from '@material-ui/icons/ContentCopy';
 import CreateNewFolder from '@material-ui/icons/CreateNewFolder';
 import Delete from '@material-ui/icons/Delete';
 import Edit from '@material-ui/icons/Edit';
-import FolderIcon from '@material-ui/icons/Folder';
+import Folder from '@material-ui/icons/Folder';
 import GetApp from '@material-ui/icons/GetApp';
 import Help from '@material-ui/icons/Help';
 import Inbox from '@material-ui/icons/Inbox';
@@ -26,7 +23,7 @@ import Info from '@material-ui/icons/Info';
 import Input from '@material-ui/icons/Input';
 import Menu from '@material-ui/icons/Menu';
 import MoreVert from '@material-ui/icons/MoreVert';
-import NotificationsIcon from '@material-ui/icons/Notifications';
+import Notifications from '@material-ui/icons/Notifications';
 import People from '@material-ui/icons/People';
 import Person from '@material-ui/icons/Person';
 import PersonAdd from '@material-ui/icons/PersonAdd';
@@ -36,93 +33,39 @@ import Search from '@material-ui/icons/Search';
 import Star from '@material-ui/icons/Star';
 import StarBorder from '@material-ui/icons/StarBorder';
 
-export enum IconTypes {
-    ACCESS_TIME = 'access_time',
-    ANNOUNCEMENT = 'announcement',
-    ARROW_DROP_DOWN = 'arrow_drop_down',
-    BUBBLE_CHART = 'bubble_chart',
-    CACHED = 'cached',
-    CODE = 'code',
-    CHEVRON_LEFT = 'chevron_left',
-    CHEVRON_RIGHT = 'chevron-right',
-    COLLECTION = 'collection',
-    CLOSE = 'close',
-    CONTENT_COPY = 'content_copy',
-    CREATE_NEW_FOLDER = 'create_new_folder',
-    DELETE = 'delete',
-    EDIT = 'edit',
-    FOLDER = 'folder',
-    GET_APP = 'get_app',
-    HELP = 'help',
-    INBOX = 'inbox',
-    INFO = 'info',
-    INPUT = 'input',
-    MENU = 'menu',
-    MORE_VERT = 'more_vert',
-    NOTIFICATIONS = 'notifications',
-    PEOPLE = 'people',
-    PERSON = 'person',
-    PERSON_ADD = 'person_add',
-    PLAY_ARROW = 'play_arrow',
-    RATE_REVIEW = 'rate_review',
-    SEARCH = 'search',
-    STAR = 'star',
-    STAR_BORDER = 'star_border'
-}
-
-interface IconBaseDataProps {
-    icon: IconTypes;
-    className?: string;
-}
-
-type IconBaseProps = IconBaseDataProps;
-
-interface IconBaseState {
-    icon: IconTypes;
-}
-
-const getSpecificIcon = (props: any) => ({
-    [IconTypes.ACCESS_TIME]: <AccessTime className={props.className} />,
-    [IconTypes.ANNOUNCEMENT]: <Announcement className={props.className} />,
-    [IconTypes.ARROW_DROP_DOWN]: <ArrowDropDown className={props.className} />,
-    [IconTypes.BUBBLE_CHART]: <BubbleChart className={props.className} />,
-    [IconTypes.CACHED]: <Cached className={props.className} />,
-    [IconTypes.CODE]: <Code className={props.className} />,
-    [IconTypes.CHEVRON_LEFT]: <ChevronLeft className={props.className} />,
-    [IconTypes.CHEVRON_RIGHT]: <ChevronRight className={props.className} />,
-    [IconTypes.COLLECTION]: <i className={classnames([props.className, 'fas fa-archive fa-lg'])} />,
-    [IconTypes.CLOSE]: <Close className={props.className} />,
-    [IconTypes.CONTENT_COPY]: <ContentCopy className={props.className} />,
-    [IconTypes.CREATE_NEW_FOLDER]: <CreateNewFolder className={props.className} />,
-    [IconTypes.DELETE]: <Delete className={props.className} />,
-    [IconTypes.EDIT]: <Edit className={props.className} />,    
-    [IconTypes.FOLDER]: <FolderIcon className={props.className} />,
-    [IconTypes.GET_APP]: <GetApp className={props.className} />,
-    [IconTypes.HELP]: <Help className={props.className} />,
-    [IconTypes.INBOX]: <Inbox className={props.className} />,
-    [IconTypes.INFO]: <Info className={props.className} />,
-    [IconTypes.INPUT]: <Input className={props.className} />,
-    [IconTypes.MENU]: <Menu className={props.className} />,
-    [IconTypes.MORE_VERT]: <MoreVert className={props.className} />,
-    [IconTypes.NOTIFICATIONS]: <NotificationsIcon className={props.className} />,
-    [IconTypes.PEOPLE]: <People className={props.className} />,
-    [IconTypes.PERSON]: <Person className={props.className} />,
-    [IconTypes.PERSON_ADD]: <PersonAdd className={props.className} />,
-    [IconTypes.PLAY_ARROW]: <PlayArrow className={props.className} />,
-    [IconTypes.RATE_REVIEW]: <RateReview className={props.className} />,
-    [IconTypes.SEARCH]: <Search className={props.className} />,
-    [IconTypes.STAR]: <Star className={props.className} />,
-    [IconTypes.STAR_BORDER]: <StarBorder className={props.className} />
-});
-
-class IconBase extends React.Component<IconBaseProps, IconBaseState> {
-    state = {
-        icon: IconTypes.FOLDER,
-    };
-
-    render() {
-        return getSpecificIcon(this.props)[this.props.icon];
-    }
-}
-
-export default IconBase;
\ No newline at end of file
+export const AddFavoriteIcon = (className?: string) => <StarBorder className={className} />;
+export const AdvancedIcon = (className?: string) => <Folder className={className} />;
+export const CustomizeTableIcon = (className?: string) => <Menu className={className} />;
+export const CopyIcon = (className?: string) => <ContentCopy className={className} />;
+export const CollectionIcon = (className?: string) => <Folder className={className} />;
+export const CloseIcon = (className?: string) => <Close className={className} />;
+export const DefaultIcon = (className?: string) => <RateReview className={className} />;
+export const DetailsIcon = (className?: string) => <Info className={className} />;
+export const DownloadIcon = (className?: string) => <GetApp className={className} />;
+export const FavoriteIcon = (className?: string) => <Star className={className} />;
+export const HelpIcon = (className?: string) => <Help className={className} />;
+export const LogIcon = (className?: string) => <Folder className={className} />;
+export const MoreOptionsIcon = (className?: string) => <MoreVert className={className} />;
+export const MoveToIcon = (className?: string) => <Input className={className} />;
+export const NewProjectIcon = (className?: string) => <CreateNewFolder className={className} />;
+export const NotificationIcon = (className?: string) => <Notifications className={className} />;
+export const PaginationDownIcon = (className?: string) => <ArrowDropDown className={className} />;
+export const PaginationLeftArrowIcon = (className?: string) => <ChevronLeft className={className} />;
+export const PaginationRightArrowIcon = (className?: string) => <ChevronRight className={className} />;
+export const ProcessIcon = (className?: string) => <BubbleChart className={className} />;
+export const ProjectIcon = (className?: string) => <Folder className={className} />;
+export const ProjectsIcon = (className?: string) => <Inbox className={className} />;
+export const ProvenanceGraphIcon = (className?: string) => <Folder className={className} />;
+export const RecentIcon = (className?: string) => <AccessTime className={className} />;
+export const RemoveIcon = (className?: string) => <Delete className={className} />;
+export const RemoveFavoriteIcon = (className?: string) => <Star className={className} />;
+export const RenameIcon = (className?: string) => <Edit className={className} />;
+export const ReRunProcessIcon = (className?: string) => <Cached className={className} />;
+export const SearchIcon = (className?: string) => <Search className={className} />;
+export const ShareIcon = (className?: string) => <PersonAdd className={className} />;
+export const ShareMeIcon = (className?: string) => <People className={className} />;
+export const SidePanelRightArrowIcon = (className?: string) => <PlayArrow className={className} />;
+export const TrashIcon = (className?: string) => <Delete className={className} />;
+export const UserPanelIcon = (className?: string) => <Person className={className} />;
+export const UsedByIcon = (className?: string) => <Folder className={className} />;
+export const WorkflowIcon = (className?: string) => <Code className={className} />;
\ No newline at end of file
index 670c477bcfb2d1e54763376824b6520f9ca2a50a..361d127a17bdd3d48bf7fc4db7dfa535588c0762 100644 (file)
@@ -7,13 +7,13 @@ import { ReactElement } from 'react';
 import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
 import { ArvadosTheme } from '../../common/custom-theme';
 import { List, ListItem, ListItemText, ListItemIcon, Collapse, Typography } from "@material-ui/core";
-import IconBase, { IconTypes } from '../icon/icon';
+import { SidePanelRightArrowIcon } from '../icon/icon';
 import * as classnames from "classnames";
 
 export interface SidePanelItem {
     id: string;
     name: string;
-    icon: IconTypes;
+    icon: (className?: string) => React.ReactElement<any>;
     active?: boolean;
     open?: boolean;
     margin?: boolean;
@@ -40,13 +40,11 @@ class SidePanel extends React.Component<SidePanelProps & WithStyles<CssRules>> {
                                 <span className={row}>
                                     {it.openAble ? (
                                         <i onClick={() => toggleOpen(it.id)} className={iconArrowContainer}>
-                                            <IconBase icon={IconTypes.PLAY_ARROW} 
-                                                className={this.getIconClassNames(it.open, it.active)}/>
+                                            {SidePanelRightArrowIcon(this.getIconClassNames(it.open, it.active))}
                                         </i>
                                     ) : null}
                                     <ListItemIcon className={it.active ? active : ''}>
-                                        <IconBase icon={it.icon} 
-                                            className={ `${icon} ${it.margin ? projectIconMargin : ''}` } />
+                                        {it.icon(`${icon} ${it.margin ? projectIconMargin : ''}`)}
                                     </ListItemIcon>
                                     <ListItemText className={listItemText} 
                                         primary={renderListItemText(it.name, active, it.active)} />
index 21c10cc64540a1889d963a284195570d584d31f3..5edd9021648dca18dbd0996e41efe8012d06b1f9 100644 (file)
@@ -4,7 +4,7 @@
 
 import sidePanelReducer from "./side-panel-reducer";
 import actions from "./side-panel-action";
-import { IconTypes } from "../../components/icon/icon";
+import { ProjectsIcon } from "../../components/icon/icon";
 
 describe('side-panel-reducer', () => {
 
@@ -13,7 +13,7 @@ describe('side-panel-reducer', () => {
             {
                 id: "1",
                 name: "Projects",
-                icon: IconTypes.INBOX,
+                icon: ProjectsIcon,
                 open: false,
                 active: false,
             }
@@ -22,7 +22,7 @@ describe('side-panel-reducer', () => {
             {
                 id: "1",
                 name: "Projects",
-                icon: IconTypes.INBOX,
+                icon: ProjectsIcon,
                 open: false,
                 active: true,
             }
@@ -37,7 +37,7 @@ describe('side-panel-reducer', () => {
             {
                 id: "1",
                 name: "Projects",
-                icon: IconTypes.INBOX,
+                icon: ProjectsIcon,
                 open: false,
                 active: false,
             }
@@ -46,7 +46,7 @@ describe('side-panel-reducer', () => {
             {
                 id: "1",
                 name: "Projects",
-                icon: IconTypes.INBOX,
+                icon: ProjectsIcon,
                 open: true,
                 active: false,
             }
@@ -61,7 +61,7 @@ describe('side-panel-reducer', () => {
             {
                 id: "1",
                 name: "Projects",
-                icon: IconTypes.INBOX,
+                icon: ProjectsIcon,
                 open: false,
                 active: true,
             }
@@ -70,7 +70,7 @@ describe('side-panel-reducer', () => {
             {
                 id: "1",
                 name: "Projects",
-                icon: IconTypes.INBOX,
+                icon: ProjectsIcon,
                 open: false,
                 active: false,
             }
index b5ab785073e9ca66075731d2c3e9421c4d1f0c9e..a0da7db9bb3cc63e89592c39d2827221aa3702de 100644 (file)
@@ -3,10 +3,9 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as _ from "lodash";
-
 import actions, { SidePanelAction } from './side-panel-action';
 import { SidePanelItem } from '../../components/side-panel/side-panel';
-import { IconTypes } from "../../components/icon/icon";
+import { ProjectsIcon, ShareMeIcon, WorkflowIcon, RecentIcon, FavoriteIcon, TrashIcon } from "../../components/icon/icon";
 
 export type SidePanelState = SidePanelItem[];
 
@@ -49,7 +48,7 @@ export const sidePanelData = [
     {
         id: SidePanelIdentifiers.Projects,
         name: "Projects",
-        icon: IconTypes.INBOX,
+        icon: ProjectsIcon,
         open: false,
         active: false,
         margin: true,
@@ -58,31 +57,31 @@ export const sidePanelData = [
     {
         id: SidePanelIdentifiers.SharedWithMe,
         name: "Shared with me",
-        icon: IconTypes.PEOPLE,
+        icon: ShareMeIcon,
         active: false,
     },
     {
         id: SidePanelIdentifiers.Workflows,
         name: "Workflows",
-        icon: IconTypes.CODE,
+        icon: WorkflowIcon,
         active: false,
     },
     {
         id: SidePanelIdentifiers.RecentOpen,
         name: "Recent open",
-        icon: IconTypes.ACCESS_TIME,
+        icon: RecentIcon,
         active: false,
     },
     {
         id: SidePanelIdentifiers.Favourites,
         name: "Favorites",
-        icon: IconTypes.STAR,
+        icon: FavoriteIcon,
         active: false,
     },
     {
         id: SidePanelIdentifiers.Trash,
         name: "Trash",
-        icon: IconTypes.DELETE,
+        icon: TrashIcon,
         active: false,
     }
 ];
index 83508cab53d815077ec82019680fa9275a7ecf95..7fa6d34c85c11abadbc21a6efa00415d68911046 100644 (file)
@@ -12,7 +12,7 @@ import { RootState } from '../../store/store';
 import actions from "../../store/details-panel/details-panel-action";
 import { ProjectResource } from '../../models/project';
 import { CollectionResource } from '../../models/collection';
-import IconBase, { IconTypes } from '../../components/icon/icon';
+import { CloseIcon } from '../../components/icon/icon';
 import { ProcessResource } from '../../models/process';
 import DetailsPanelFactory from '../../components/details-panel-factory/details-panel-factory';
 import AbstractItem from '../../components/details-panel-factory/items/abstract-item';
@@ -49,7 +49,7 @@ class DetailsPanel extends React.Component<DetailsPanelProps, {}> {
                     <Typography component="div" className={classes.headerContainer}>
                         <Grid container alignItems='center' justify='space-around'>
                             <Grid item xs={2}>
-                                <IconBase className={classes.headerIcon} icon={item.getIcon()} />
+                                {item.getIcon(classes.headerIcon)}
                             </Grid>
                             <Grid item xs={8}>
                                 <Typography variant="title">
@@ -58,7 +58,7 @@ class DetailsPanel extends React.Component<DetailsPanelProps, {}> {
                             </Grid>
                             <Grid item>
                                 <IconButton color="inherit" onClick={onCloseDrawer}>
-                                    <IconBase icon={IconTypes.CLOSE} />
+                                    {CloseIcon()}
                                 </IconButton>
                             </Grid>
                         </Grid>
index bf9c6577eac09f3220694643f920cb181c1fd7a8..ce9ddb7b78b706ec325d013f7769fd0514b37b56 100644 (file)
@@ -8,7 +8,7 @@ import { User, getUserFullname } from "../../models/user";
 import SearchBar from "../../components/search-bar/search-bar";
 import Breadcrumbs, { Breadcrumb } from "../../components/breadcrumbs/breadcrumbs";
 import DropdownMenu from "../../components/dropdown-menu/dropdown-menu";
-import IconBase, { IconTypes } from "../../components/icon/icon";
+import { DetailsIcon, NotificationIcon, UserPanelIcon, HelpIcon } from "../../components/icon/icon";
 
 export interface MainAppBarMenuItem {
     label: string;
@@ -74,7 +74,7 @@ export const MainAppBar: React.SFC<MainAppBarProps> = (props) => {
                     onContextMenu={props.onContextMenu} />
             }
             <IconButton color="inherit" onClick={props.onDetailsPanelToggle}>
-                <IconBase icon={IconTypes.INFO} />
+                { DetailsIcon() }
             </IconButton>
         </Toolbar>
     </AppBar>;
@@ -86,16 +86,16 @@ const renderMenuForUser = ({ user, menuItems, onMenuItemClick }: MainAppBarProps
         <>
             <IconButton color="inherit">
                 <Badge badgeContent={3} color="primary">
-                    <IconBase icon={IconTypes.NOTIFICATIONS} />
+                    {NotificationIcon()}
                 </Badge>
             </IconButton>
-            <DropdownMenu icon={IconTypes.PERSON} id="account-menu">
+            <DropdownMenu icon={UserPanelIcon()} id="account-menu">
                 <MenuItem>
                     {getUserFullname(user)}
                 </MenuItem>
                 {renderMenuItems(menuItems.accountMenu, onMenuItemClick)}
             </DropdownMenu>
-            <DropdownMenu icon={IconTypes.HELP} id="help-menu">
+            <DropdownMenu icon={HelpIcon()} id="help-menu">
                 {renderMenuItems(menuItems.helpMenu, onMenuItemClick)}
             </DropdownMenu>
         </>