import React, { useMemo } from "react" import { useTranslation } from "react-i18next" import { normalizeAmount } from "../../../utils/prices" import EditIcon from "../../fundamentals/icons/edit-icon" import TrashIcon from "../../fundamentals/icons/trash-icon" import UnpublishIcon from "../../fundamentals/icons/unpublish-icon" import StatusIndicator from "../../fundamentals/status-indicator" import { ActionType } from "../../molecules/actionables" import BannerCard from "../../molecules/banner-card" import TagGrid from "../../molecules/tag-grid" type GiftCardVariant = { prices: { currency_code: string amount: number }[] } type GiftCardBannerProps = { title: string status: string thumbnail: string | null description: string | null variants: GiftCardVariant[] defaultCurrency: string onEdit: () => void onUnpublish: () => void onDelete: () => void } const GiftCardBanner: React.FC = ({ title, status, thumbnail, description, variants, defaultCurrency, onEdit, onUnpublish, onDelete, }) => { const { t } = useTranslation() const actions: ActionType[] = [ { label: t("gift-card-banner-edit", "Edit"), onClick: onEdit, icon: , }, { label: status === "published" ? t("gift-card-banner-unpublish", "Unpublish") : t("gift-card-banner-publish", "Publish"), onClick: onUnpublish, icon: , }, { label: t("gift-card-banner-delete", "Delete"), onClick: onDelete, icon: , variant: "danger", }, ] const denominations = useMemo(() => { return variants .map((variant) => { const price = variant.prices.find( (price) => price.currency_code === defaultCurrency ) if (!price) { return "" } return `${normalizeAmount( defaultCurrency, price.amount )} ${defaultCurrency.toUpperCase()}` }) .filter(Boolean) }, [variants, defaultCurrency]) return ( {description}
) } export default GiftCardBanner