From 534df712c4cfc3f6574dee1f4906bb7f6cc70be9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Kuty=C5=82a?= Date: Thu, 21 Jan 2021 21:56:38 +0100 Subject: [PATCH] 17264: Added generic component to get resource icon MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Arvados-DCO-1.1-Signed-off-by: Daniel Kutyła --- src/components/tree/tree.tsx | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/src/components/tree/tree.tsx b/src/components/tree/tree.tsx index 2089d1cb..908ee28c 100644 --- a/src/components/tree/tree.tsx +++ b/src/components/tree/tree.tsx @@ -5,13 +5,14 @@ import * as React from 'react'; import { List, ListItem, ListItemIcon, Checkbox, Radio, Collapse } from "@material-ui/core"; import { StyleRulesCallback, withStyles, WithStyles } from '@material-ui/core/styles'; -import { ProjectIcon } from '~/components/icon/icon'; +import { CollectionIcon, DefaultIcon, DirectoryIcon, FileIcon, ProjectIcon } from '~/components/icon/icon'; import { ReactElement } from "react"; import CircularProgress from '@material-ui/core/CircularProgress'; import classnames from "classnames"; import { ArvadosTheme } from '~/common/custom-theme'; import { SidePanelRightArrowIcon } from '../icon/icon'; +import { ResourceKind } from '~/models/resource'; type CssRules = 'list' | 'listItem' @@ -161,6 +162,35 @@ const FLAT_TREE_ACTIONS = { toggleActive: 'TOGGLE_ACTIVE', }; +const ItemIcon = React.memo(({type, kind, active, classes}: any) => { + let Icon = ProjectIcon; + + if (type) { + switch (type) { + case 'directory': + Icon = DirectoryIcon; + break; + case 'file': + Icon = FileIcon; + break; + default: + Icon = DefaultIcon; + } + } + + if (kind) { + switch(kind) { + case ResourceKind.COLLECTION: + Icon = CollectionIcon; + break; + default: + break; + } + } + + return ; +}); + const FlatTree = (props: FlatTreeProps) =>
{ @@ -198,7 +228,7 @@ const FlatTree = (props: FlatTreeProps) =>
- + {item.data.name} -- 2.30.2