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 (