import Flex from '@/components/atoms/Flex'
import React from 'react'
import {
StyledWishlist,
StyledWishlistItem,
StyledWishlistPhoto
} from './Wishlists.theme'
import Heading from '@/components/atoms/Heading'
import Button from '@/components/atoms/Button'
import Icon from '@/components/atoms/Icon'
import { Column } from '@/components/atoms/FlexGrid'
import {
IWishlists,
IWishlistItem,
IWishlistProducts
} from './Wishlists.interface'
import ImageWrapper from '@/components/atoms/ImageWrapper'
import Separator from '@/components/atoms/Separator'
import { colors } from '@/styles/variables'
export const Wishlists = ({ wishlists = [] }) => {
return (
{wishlists &&
wishlists.map((wishlistItem: IWishlistItem) => (
))}
)
}
export const WishlistItem: React.FC = ({
wishName,
productList,
actionButtonLabel = 'SEE MORE',
editButtonLabel = 'EDIT',
removeButtonLabel = 'REMOVE',
onRemoveButtonClick,
onEditButtonClick,
hrefOnActionButtonClick,
}) => {
function getRenderCards(maxVisibleCards: number, productsList: IWishlistProducts[]) {
if (!productsList) return null;
const visibleCards = productsList.slice(0, maxVisibleCards);
const emptyCardCount = Math.max(0, maxVisibleCards - productsList.length);
const combinedEmptyAndFilledCards = [...Array(emptyCardCount), ...visibleCards];
const renderedCards = combinedEmptyAndFilledCards.map((product: IWishlistProducts, index: number) => (
{product?.imageElement ?? ''}
));
return renderedCards;
}
const productCardsToRender = getRenderCards(4, productList)
return (
}
className="uppercase"
onClick={onEditButtonClick}
>
{editButtonLabel}
}
onClick={onRemoveButtonClick}
className="delete-button"
>
{removeButtonLabel}
{wishName}
}
href={hrefOnActionButtonClick}
>
{actionButtonLabel}
{productCardsToRender && productCardsToRender}
)
}