import { Children, ComponentProps, ReactElement, ReactNode } from 'react'; import classnames from 'classnames'; import styles from './BannerUpsell.css'; import VRBannerUpsell from './BannerUpsell/VRBannerUpsell'; import BannerUpsellForm from './BannerUpsellForm'; import Box from './Box'; import Button from './Button'; import ButtonLink from './ButtonLink'; import { useColorScheme } from './contexts/ColorSchemeProvider'; import { useDefaultLabelContext } from './contexts/DefaultLabelProvider'; import IconButton from './IconButton'; import Image from './Image'; import Mask from './Mask'; import Text from './Text'; import useResponsiveMinWidth from './useResponsiveMinWidth'; import useExperimentalTheme from './utils/useExperimentalTheme'; export type ActionDataType = | { accessibilityLabel: string; disabled?: boolean; href: string; label: string; onClick?: ComponentProps['onClick']; rel?: 'none' | 'nofollow'; role: 'link'; target?: null | 'self' | 'blank'; } | { accessibilityLabel: string; disabled?: boolean; label: string; onClick: ComponentProps['onClick']; role?: 'button'; }; type UpsellActionProps = { data: ActionDataType; stacked?: boolean; type: string; }; function UpsellAction({ data, stacked, type }: UpsellActionProps) { const color = type === 'primary' ? 'red' : 'gray'; const { accessibilityLabel, disabled, label } = data; return ( {data.role === 'link' ? ( ) : (