import {ComponentMeta} from "../ComponentsMeta"; import React from "react"; import {iconWithClassName} from "../IconWithClassName"; import {CardRenderer} from "../CardRenderers"; import {__} from "../../globals"; import {usingOfferOptions} from "./CardHelpers"; import {FieldType} from "../fields"; import {NumberProps} from "../fields/Number"; import {renderCurrencyValue} from "../fields/helpers"; import {OfferCardContent} from "./OfferCardContent"; import {BaseOfferOptions} from "./OfferTypes"; import {RepeatingLabel} from "./Recusrive"; import {RowOptions} from "./Fields/RowOptions"; import {ComponentCategory} from "../components"; export type BundlePriceOptions = BaseOfferOptions & { amount: number } export const type = 'BundlePrice' export const BundlePriceMeta: ComponentMeta = { id: type, type: 'offers', category: ComponentCategory.CartItemDiscounts, priority: 2, icon: iconWithClassName(({className, context}) => { if (context === 'card') { // solid return } // outline return }), fieldsMap: [ [ new RowOptions({ type: 'featured', colWidth: 'auto' }), { id: 'amount', renderType: FieldType.Number, fieldProps: { hasAmountStructure: false, type: 'currency', border: false } as Partial } ] ] } export const BundlePriceRenderer: CardRenderer = { type: type, prefix: "*", example: __('2 hoodies for $50, 1 burger + 1 fries + 1 drink for $20, etc.'), icon: BundlePriceMeta.icon!, AboveComputedValue: () => false, ComputedValue: usingOfferOptions(({amount}, {color}, offer) => { return {true && {{renderCurrencyValue(amount)}} } }), OutsideComputedValue: usingOfferOptions(({__BASE__: {isRecursive}}, {color,}) => { return {isRecursive && } }) }