From 6bfa4d23c7645d091d01f893fb0e18d3857c4352 Mon Sep 17 00:00:00 2001 From: tudi2d Date: Mon, 29 Jun 2020 14:39:57 +0200 Subject: [PATCH] Fix material-table action for starring entity --- .../src/components/CatalogPage/CatalogPage.tsx | 14 ++++++++++++-- .../FavouriteEntity/FavouriteEntity.tsx | 18 ++++++++++-------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx b/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx index 5dbf886df2..bad303bd53 100644 --- a/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx +++ b/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx @@ -39,7 +39,10 @@ import { filterGroups, labeledEntityTypes, } from '../../data/filters'; -import { FavouriteEntity } from '../FavouriteEntity/FavouriteEntity'; +import { + favouriteEntityIcon, + favouriteEntityTooltip, +} from '../FavouriteEntity/FavouriteEntity'; const useStyles = makeStyles(theme => ({ contentWrapper: { @@ -106,7 +109,14 @@ export const CatalogPage: FC<{}> = () => { hidden: location?.type !== 'github', }; }, - (rowData: Entity) => , + (rowData: Entity) => { + const isStarred = isStarredEntity(rowData); + return { + icon: favouriteEntityIcon(isStarred), + tooltip: favouriteEntityTooltip(isStarred), + onClick: () => toggleStarredEntity(rowData), + }; + }, ]; return ( diff --git a/plugins/catalog/src/components/FavouriteEntity/FavouriteEntity.tsx b/plugins/catalog/src/components/FavouriteEntity/FavouriteEntity.tsx index 38dc654fea..3ea5b68d4b 100644 --- a/plugins/catalog/src/components/FavouriteEntity/FavouriteEntity.tsx +++ b/plugins/catalog/src/components/FavouriteEntity/FavouriteEntity.tsx @@ -15,7 +15,7 @@ */ import React, { ComponentProps } from 'react'; -import { IconButton, Tooltip, withStyles } from '@material-ui/core'; +import { IconButton, Tooltip, withStyles, SvgIcon } from '@material-ui/core'; import StarBorder from '@material-ui/icons/StarBorder'; import Star from '@material-ui/icons/Star'; import { useEntities } from '../../hooks/useEntities'; @@ -29,6 +29,12 @@ const YellowStar = withStyles({ }, })(Star); +export const favouriteEntityTooltip = (isStarred: boolean) => + isStarred ? 'Remove from favorites' : 'Add to favorites'; + +export const favouriteEntityIcon = (isStarred: boolean) => + isStarred ? YellowStar : StarBorder; + /** * IconButton for showing if a current entity is starred and adding/removing it from the favourite entities * @param props MaterialUI IconButton props extended by required `entity` prop @@ -37,13 +43,9 @@ export const FavouriteEntity: React.FC = props => { const { toggleStarredEntity, isStarredEntity } = useEntities(); const isStarred = isStarredEntity(props.entity); return ( - toggleStarredEntity(props.entity)} - > - - {isStarred ? : } + toggleStarredEntity(props.entity)}> + + );