//
// SPDX-License-Identifier: AGPL-3.0
-import * as React from "react";
-import { FavoriteIcon } from "../../components/icon/icon";
+import 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 { RootState } from "store/store";
+import { withStyles, StyleRulesCallback, WithStyles, Tooltip } from "@material-ui/core";
type CssRules = "icon";
const mapStateToProps = (state: RootState, props: { resourceUuid: string; className?: string; }) => ({
...props,
- visible: state.favorites[props.resourceUuid],
+ isFavoriteVisible: state.favorites[props.resourceUuid],
+ isPublicFavoriteVisible: state.publicFavorites[props.resourceUuid]
});
export const FavoriteStar = connect(mapStateToProps)(
- withStyles(styles)((props: { visible: boolean; className?: string; } & WithStyles<CssRules>) =>
- props.visible ? <FavoriteIcon className={props.className || props.classes.icon} /> : null
- ));
\ No newline at end of file
+ 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 <Tooltip enterDelay={500} title="Public Favorite"><PublicFavoriteIcon className={props.className || props.classes.icon} /></Tooltip>;
+ } else {
+ return null;
+ }
+ }));