import { useIntl } from "react-intl" import IconChip from "../IconChip" import { MaterialIcon } from "../Icons/MaterialIcon" import FilledDiscountIcon from "../Icons/Nucleo/Benefits/FilledDiscount" import { Typography } from "../Typography" import { cx } from "class-variance-authority" import { IconButton } from "../IconButton" import styles from "./bookingCodeChip.module.css" type BaseBookingCodeChipProps = { alignCenter?: boolean bookingCode?: string | null isCampaign?: boolean isUnavailable?: boolean isCampaignUnavailable?: boolean withText?: boolean } type BookingCodeChipWithoutCloseButtonProps = BaseBookingCodeChipProps & { withCloseButton?: false onClose?: undefined } type BookingCodeChipWithCloseButtonProps = BaseBookingCodeChipProps & { withCloseButton: true onClose: () => void } type BookingCodeChipProps = | BookingCodeChipWithoutCloseButtonProps | BookingCodeChipWithCloseButtonProps export function BookingCodeChip({ alignCenter, bookingCode, isCampaign, isCampaignUnavailable, isUnavailable, withText = true, withCloseButton, onClose, }: BookingCodeChipProps) { const intl = useIntl() const isCampaignRate = isCampaign || isCampaignUnavailable if (!isCampaignRate && !bookingCode) { return null } const color = isCampaignRate ? "green" : "blue" const iconColor = isCampaignRate ? "Icon/Feedback/Success" : "Icon/Feedback/Information" const isUnavailableRate = isCampaignRate ? isCampaignUnavailable : isUnavailable const label = isCampaignRate ? intl.formatMessage({ id: "booking.campaign", defaultMessage: "Campaign", }) : intl.formatMessage({ id: "booking.bookingCode", defaultMessage: "Booking code", }) const icon = isCampaignRate ? ( ) : ( ) return ( {withText && ( {label} )} {bookingCode && ( {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} {withText && ∙} {bookingCode} )} {withCloseButton && ( )} ) }
{withText && ( {label} )} {bookingCode && ( {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} {withText && ∙} {bookingCode} )}