1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-06 00:07:44 +01:00
unleash.unleash/frontend/src/component/common/FavoriteIconButton/FavoriteIconButton.tsx
Nuno Góis 4167a60588
feat: biome lint frontend (#4903)
Follows up on https://github.com/Unleash/unleash/pull/4853 to add Biome
to the frontend as well.


![image](https://github.com/Unleash/unleash/assets/14320932/1906faf1-fc29-4172-a4d4-b2716d72cd65)

Added a few `biome-ignore` to speed up the process but we may want to
check and fix them in the future.
2023-10-02 13:25:46 +01:00

54 lines
1.8 KiB
TypeScript

import { VFC } from 'react';
import { IconButton, IconButtonProps } from '@mui/material';
import { ConditionallyRender } from '../ConditionallyRender/ConditionallyRender';
import {
Star as StarIcon,
StarBorder as StarBorderIcon,
} from '@mui/icons-material';
import { TooltipResolver } from '../TooltipResolver/TooltipResolver';
interface IFavoriteIconButtonProps extends IconButtonProps {
isFavorite: boolean;
size?: 'medium' | 'large';
}
export const FavoriteIconButton: VFC<IFavoriteIconButtonProps> = ({
isFavorite,
size = 'large',
...props
}) => {
return (
<TooltipResolver
title={isFavorite ? 'Remove from favorites' : 'Add to favorites'}
>
<IconButton size={size} data-loading {...props}>
<ConditionallyRender
condition={isFavorite}
show={
<StarIcon
color='primary'
sx={{
fontSize: (theme) =>
size === 'medium'
? theme.spacing(2)
: theme.spacing(3),
}}
/>
}
elseShow={
<StarBorderIcon
color='primary'
sx={{
fontSize: (theme) =>
size === 'medium'
? theme.spacing(2)
: theme.spacing(3),
}}
/>
}
/>
</IconButton>
</TooltipResolver>
);
};