import React, { useState } from 'react'; import { Cart, useOrder, useLanguage, useUtils, useConfig, useValidationFields, } from 'ordering-components/native'; import { OSContainer, OSProductList, OSBill, OSTable, OSTotal, OSCoupon } from './styles'; import { ProductItemAccordion } from '../ProductItemAccordion'; import { CouponControl } from '../CouponControl'; import { OModal, OText } from '../shared'; import { ProductForm } from '../ProductForm'; import { verifyDecimals } from '../../../../../src/utils'; import { useTheme } from 'styled-components/native'; const OrderSummaryUI = (props: any) => { const { cart, changeQuantity, getProductMax, offsetDisabled, removeProduct, isCartPending, isFromCheckout } = props; const theme = useTheme(); const [, t] = useLanguage(); const [{ configs }] = useConfig(); const [orderState] = useOrder(); const [{ parsePrice, parseNumber }] = useUtils(); const [validationFields] = useValidationFields(); const [openProduct, setModalIsOpen] = useState(false) const [curProduct, setCurProduct] = useState(null) const isCouponEnabled = validationFields?.fields?.checkout?.coupon?.enabled; const handleDeleteClick = (product: any) => { removeProduct(product) } const handleEditProduct = (product: any) => { setCurProduct(product) setModalIsOpen(true) } const handlerProductAction = (product: any) => { if (Object.keys(product).length) { setModalIsOpen(false) } } return ( {cart?.products?.length > 0 && ( <> {cart?.products.map((product: any) => ( ))} {t('SUBTOTAL', 'Subtotal')} {parsePrice(cart?.subtotal || 0)} {cart?.discount > 0 && cart?.total >= 0 && ( {cart?.discount_type === 1 ? ( {t('DISCOUNT', 'Discount')} {`(${verifyDecimals(cart?.discount_rate, parseNumber)}%)`} ) : ( {t('DISCOUNT', 'Discount')} )} - {parsePrice(cart?.discount || 0)} )} {cart.business.tax_type !== 1 && ( {t('TAX', 'Tax')} {`(${verifyDecimals(cart?.business?.tax, parseNumber)}%)`} {parsePrice(cart?.tax || 0)} )} {orderState?.options?.type === 1 && cart?.delivery_price > 0 && ( {t('DELIVERY_FEE', 'Delivery Fee')} {parsePrice(cart?.delivery_price)} )} {cart?.driver_tip > 0 && ( {t('DRIVER_TIP', 'Driver tip')} {cart?.driver_tip_rate > 0 && parseInt(configs?.driver_tip_type?.value, 10) === 2 && !parseInt(configs?.driver_tip_use_custom?.value, 10) && ( `(${verifyDecimals(cart?.driver_tip_rate, parseNumber)}%)` )} {parsePrice(cart?.driver_tip)} )} {cart?.service_fee > 0 && ( {t('SERVICE_FEE', 'Service Fee')} {`(${verifyDecimals(cart?.business?.service_fee, parseNumber)}%)`} {parsePrice(cart?.service_fee)} )} {isCouponEnabled && !isCartPending && ( )} {t('TOTAL', 'Total')} {cart?.total >= 1 && parsePrice(cart?.total)} setModalIsOpen(false)} > setModalIsOpen(false)} isFromCheckout={isFromCheckout} /> )} ) } export const OrderSummary = (props: any) => { const orderSummaryProps = { ...props, UIComponent: OrderSummaryUI } return ( ) }