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 ( {wishName} {productCardsToRender && productCardsToRender} ) }