import style from './cart.module.css'; import React, { useEffect, useMemo } from 'react'; import Link from 'next/link'; import { Button, Toast, Tooltip } from '@chakra-ui/react'; import { toast } from 'react-hot-toast'; import { useRouter } from 'next/router'; import { getAuth } from '~/libs/auth'; import { useCartStore } from '~/modules/cart/stores/useCartStore'; import CartItem from '~/modules/cart/components/Item'; import CartSummary from '~/modules/cart/components/Summary'; import clsxm from '~/libs/clsxm'; import useDevice from '@/core/hooks/useDevice'; import CartSummaryMobile from '~/modules/cart/components/CartSummaryMobile'; import Image from '~/components/ui/image'; const CartPage = () => { const router = useRouter(); const auth = getAuth(); const [isStepApproval, setIsStepApproval] = React.useState(false); const { loadCart, cart, summary } = useCartStore(); const useDivvice = useDevice(); useEffect(() => { if (typeof auth === 'object' && !cart) { loadCart(auth.id); setIsStepApproval(auth?.feature?.soApproval); } }, [auth, loadCart, cart]); const hasSelectedPromo = useMemo(() => { if (!cart) return false; for (const item of cart.products) { if (item.cart_type === 'promotion' && item.selected) return true; } return false; }, [cart]); const hasSelected = useMemo(() => { if (!cart) return false; for (const item of cart.products) { if (item.selected) return true; } return false; }, [cart]); const hasSelectNoPrice = useMemo(() => { if (!cart) return false; for (const item of cart.products) { if (item.selected && item.price.price_discount == 0) return true; } return false; }, [cart]); const handleCheckout = (()=>{ router.push('/shop/checkout'); }) const handleQuotation = (()=>{ if(hasSelectedPromo || !hasSelected){ toast.error('Maaf, Barang promo tidak dapat dibuat quotation'); }else{ router.push('/shop/quotation'); } }) return ( <>