Add grid card indicator for favorite items
This commit is contained in:
parent
4c98afb613
commit
e2e3a50f1f
2 changed files with 37 additions and 4 deletions
|
@ -66,7 +66,7 @@ const InnerCardContainer = styled.div`
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const ImageContainer = styled.div`
|
const ImageContainer = styled.div<{ $isFavorite?: boolean }>`
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -89,6 +89,22 @@ const ImageContainer = styled.div`
|
||||||
content: '';
|
content: '';
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
${(props) =>
|
||||||
|
props.$isFavorite &&
|
||||||
|
`
|
||||||
|
&::after {
|
||||||
|
position: absolute;
|
||||||
|
top: -50px;
|
||||||
|
left: -50px;
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
box-shadow: 0 0 10px 8px rgba(0, 0, 0, 80%);
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
content: '';
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
`}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const Image = styled(SimpleImg)`
|
const Image = styled(SimpleImg)`
|
||||||
|
@ -154,7 +170,7 @@ export const DefaultCard = ({
|
||||||
onClick={() => navigate(path)}
|
onClick={() => navigate(path)}
|
||||||
>
|
>
|
||||||
<InnerCardContainer>
|
<InnerCardContainer>
|
||||||
<ImageContainer>
|
<ImageContainer $isFavorite={data?.userFavorite}>
|
||||||
{data?.imageUrl ? (
|
{data?.imageUrl ? (
|
||||||
<Image
|
<Image
|
||||||
importance="auto"
|
importance="auto"
|
||||||
|
|
|
@ -44,7 +44,7 @@ const LinkContainer = styled.div`
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const ImageContainer = styled.div`
|
const ImageContainer = styled.div<{ $isFavorite?: boolean }>`
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -67,6 +67,23 @@ const ImageContainer = styled.div`
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
${(props) =>
|
||||||
|
props.$isFavorite &&
|
||||||
|
`
|
||||||
|
&::after {
|
||||||
|
position: absolute;
|
||||||
|
top: -50px;
|
||||||
|
left: -50px;
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
box-shadow: 0 0 10px 8px rgba(0, 0, 0, 80%);
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
content: '';
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
`}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
&::before {
|
&::before {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
|
@ -138,7 +155,7 @@ export const PosterCard = ({
|
||||||
return (
|
return (
|
||||||
<PosterCardContainer key={`card-${columnIndex}-${listChildProps.index}`}>
|
<PosterCardContainer key={`card-${columnIndex}-${listChildProps.index}`}>
|
||||||
<LinkContainer onClick={() => navigate(path)}>
|
<LinkContainer onClick={() => navigate(path)}>
|
||||||
<ImageContainer>
|
<ImageContainer $isFavorite={data?.userFavorite}>
|
||||||
{data?.imageUrl ? (
|
{data?.imageUrl ? (
|
||||||
<Image
|
<Image
|
||||||
importance="auto"
|
importance="auto"
|
||||||
|
|
Reference in a new issue