15781: Fixes project tag add/delete error handling.
[arvados.git] / src / views-components / context-menu / actions / public-favorite-action.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import * as React from "react";
6 import { ListItemIcon, ListItemText, ListItem } from "@material-ui/core";
7 import { PublicFavoriteIcon } from "~/components/icon/icon";
8 import { connect } from "react-redux";
9 import { RootState } from "~/store/store";
10
11 const mapStateToProps = (state: RootState, props: { onClick: () => {} }) => ({
12     isPublicFavorite: state.contextMenu.resource !== undefined && state.publicFavorites[state.contextMenu.resource.uuid] === true,
13     onClick: props.onClick
14 });
15
16 export const TogglePublicFavoriteAction = connect(mapStateToProps)((props: { isPublicFavorite: boolean, onClick: () => void }) =>
17     <ListItem
18         button
19         onClick={props.onClick}>
20         <ListItemIcon>
21             {props.isPublicFavorite
22                 ? <PublicFavoriteIcon />
23                 : <PublicFavoriteIcon />}
24         </ListItemIcon>
25         <ListItemText style={{ textDecoration: 'none' }}>
26             {props.isPublicFavorite
27                 ? <>Remove from public favorites</>
28                 : <>Add to public favorites</>}
29         </ListItemText>
30     </ListItem >);