import React, { useEffect } from 'react' import { UpsellingPage as UpsellingPageController, useOrder, } from 'ordering-components/native' import { OBottomPopup } from '../shared' import { UpsellingProductsParams } from '../../types' import { UpsellingLayout } from './UpsellingLayout'; import { UpsellingContent } from './UpsellingContent'; const UpsellingProductsUI = (props: UpsellingProductsParams) => { const { isCustomMode, upsellingProducts, handleUpsellingPage, openUpselling, canOpenUpselling, setCanOpenUpselling, isFromCart } = props const [{ carts }] = useOrder() const cart = carts?.[`businessId:${props.businessId}`] ?? {} const cartProducts = cart?.products?.length ? cart?.products.map((product: any) => product.id) : [] const productsList = !upsellingProducts.loading && !upsellingProducts.error ? upsellingProducts?.products?.length ? upsellingProducts?.products.filter((product: any) => !cartProducts.includes(product.id)) : (props?.products ?? []).filter((product: any) => !cartProducts.includes(product.id)) ?? [] : [] useEffect(() => { if (!isCustomMode && !props.products) { if (!upsellingProducts?.loading) { if (upsellingProducts?.products?.length && !isFromCart) { setCanOpenUpselling && setCanOpenUpselling(true) } else { handleUpsellingPage && handleUpsellingPage(cart) } } } }, [upsellingProducts?.loading, upsellingProducts?.products?.length]) return ( <> {isCustomMode ? ( ) : ( <> {props.isPage ? ( ) : ( canOpenUpselling && ( handleUpsellingPage(cart)} isStatusBar > ) )} )} ) } export const UpsellingProducts = (props: UpsellingProductsParams) => { const upsellingProductsProps = { ...props, UIComponent: UpsellingProductsUI } return ( ) }