"use client"; import cx from "classnames"; import React from "react"; import { capitalize } from "../../utils"; import { Table } from "../Table"; import type { Footer, Labels } from "./generateFooter"; import generateFooter from "./generateFooter"; import generateRow from "./generateRow"; import type { Item } from "./generateTotal"; const CLASS_ROOT = "cart-table"; export interface CartTableProps { footer?: Footer; hideEmpty?: boolean; isEditable?: boolean; items: Item[]; labels?: Labels; size?: "large"; } const defaultLabels: Labels = { monthly: "mesačne", upfront: "vopred", product: "produkt", remove: "odstrániť", add: "Pridať", install: "inštalácia", free: "zadarmo", }; const CartTable: React.FC = ({ items = [], hideEmpty = true, isEditable = false, footer, labels = defaultLabels, size, }) => { const hideClass = hideEmpty ? [" hide", " hide"] : ["", ""]; if (hideEmpty) { items.forEach(({ price = {}, discount = {} }) => { if (price.upfront !== undefined || discount.upfront !== undefined) { hideClass[0] = ""; } if (price.monthly !== undefined || discount.monthly !== undefined) { hideClass[1] = ""; } }); } return ( ({ ...generateRow(row, isEditable, labels), }))} footers={generateFooter( items, "true", footer ?? {}, labels, size === "large" ? "large" : (undefined as never), )} >
); }; CartTable.displayName = "CartTable"; export { CartTable };