import { forwardRef } from 'react'; import PropTypes from 'prop-types'; import { getPrimaryButtonBgColorClass, getSecondaryBgColorClasses, getSecondaryTextColorClass, shouldForceWhiteTextLightDark, shouldForceWhiteTextLightMode, amazonButtonClasses } from '../ProductTheme'; import { BUTTON_CONTAINER_BASE_CLASSES as buttonContainerBaseClasses, BUTTON_CONTAINER_VARIANT_CLASSES as buttonContainerVariantClasses, BUTTON_VARIANT_CLASSES as buttonVariantClasses } from './ProductButtonTheme'; import { AmazonA } from '../../../../../assets/icons'; import { channel as $channelContent } from '../../../../../content'; import { clsm, noop } from '../../../../../utils'; import { useChannel } from '../../../../../contexts/Channel'; import Button from '../../../../../components/Button'; const $productPopupContent = $channelContent.actions.product; const ProductButtons = forwardRef( ({ openProductDetails, variant, productUrl }, ref) => { const { channelData } = useChannel(); const color = channelData?.color || 'default'; const isModal = variant !== 'popup'; const isAmazonProduct = productUrl !== ''; const productContainerClasses = [ buttonContainerBaseClasses, buttonContainerVariantClasses[variant] ]; const buttonClasses = isAmazonProduct ? amazonButtonClasses : getPrimaryButtonBgColorClass(color); const buttonTextClasses = isAmazonProduct ? 'text-black' : [ shouldForceWhiteTextLightMode(color) && [ 'text-white', 'dark:text-black' ], shouldForceWhiteTextLightDark(color) && [ 'text-white', 'dark:text-white' ] ]; return (
{!isAmazonProduct && ( )}
); } ); ProductButtons.defaultProps = { openProductDetails: noop, productUrl: '' }; ProductButtons.propTypes = { openProductDetails: PropTypes.func, productUrl: PropTypes.string, variant: PropTypes.oneOf([ 'popup', 'productDescriptionDesktop', 'productDescriptionMobile' ]).isRequired }; export default ProductButtons;