15781: Uses 'contains' or 'ilike' on prop searches depending on API revision.
[arvados-workbench2.git] / src / views-components / favorite-star / favorite-star.tsx
index cf744886306ffc2d20ec1fb638434e748c6a2333..0598e5f5226e104555f3d143335015f47b2514d3 100644 (file)
@@ -6,7 +6,7 @@ import * as React from "react";
 import { FavoriteIcon, PublicFavoriteIcon } from "~/components/icon/icon";
 import { connect } from "react-redux";
 import { RootState } from "~/store/store";
-import { withStyles, StyleRulesCallback, WithStyles } from "@material-ui/core";
+import { withStyles, StyleRulesCallback, WithStyles, Tooltip } from "@material-ui/core";
 
 type CssRules = "icon";
 
@@ -23,11 +23,18 @@ const mapStateToProps = (state: RootState, props: { resourceUuid: string; classN
 });
 
 export const FavoriteStar = connect(mapStateToProps)(
-    withStyles(styles)((props: { isFavoriteVisible: boolean; isPublicFavoriteVisible: boolean; className?: string; } & WithStyles<CssRules>) => {
+    withStyles(styles)((props: { isFavoriteVisible: boolean; className?: string; } & WithStyles<CssRules>) => {
+        if (props.isFavoriteVisible) {
+            return <Tooltip enterDelay={500} title="Favorite"><FavoriteIcon className={props.className || props.classes.icon} /></Tooltip>;
+        } else {
+            return null;
+        }
+    }));
+
+export const PublicFavoriteStar = connect(mapStateToProps)(
+    withStyles(styles)((props: { isPublicFavoriteVisible: boolean; className?: string; } & WithStyles<CssRules>) => {
         if (props.isPublicFavoriteVisible) {
-            return <PublicFavoriteIcon className={props.className || props.classes.icon} />;
-        } else if (props.isFavoriteVisible) {
-            return <FavoriteIcon className={props.className || props.classes.icon} />;
+            return <Tooltip enterDelay={500} title="Public Favorite"><PublicFavoriteIcon className={props.className || props.classes.icon} /></Tooltip>;
         } else {
             return null;
         }