diff options
| author | Miqdad <ahmadmiqdad27@gmail.com> | 2025-08-28 14:25:45 +0700 |
|---|---|---|
| committer | Miqdad <ahmadmiqdad27@gmail.com> | 2025-08-28 14:25:45 +0700 |
| commit | ff73ed876e8516ed1a3cfef1d5f8381a2d9ca70e (patch) | |
| tree | 83cd862e4565a1c2cda8be2f229c1b79b9d4d916 /src/lib | |
| parent | 1b7d4dd7e26e8b249adf49b86dea85968eeb6653 (diff) | |
<Miqdad> Show bayar sekarang in detail transaction
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/transaction/components/Transaction.jsx | 515 |
1 files changed, 165 insertions, 350 deletions
diff --git a/src/lib/transaction/components/Transaction.jsx b/src/lib/transaction/components/Transaction.jsx index 77e60dc1..cc5f862c 100644 --- a/src/lib/transaction/components/Transaction.jsx +++ b/src/lib/transaction/components/Transaction.jsx @@ -43,13 +43,14 @@ import { gtagPurchase } from '@/core/utils/googleTag'; import { deleteItemCart } from '@/core/utils/cart'; import { downloadInvoice, - downloadTaxInvoice, + // downloadTaxInvoice, // (unused) } from '@/lib/invoice/utils/invoices'; import { Download } from 'lucide-react'; import axios from 'axios'; import InformationSection from '../../treckingAwb/component/InformationSection'; -import { Button } from '@chakra-ui/react'; -import { div } from 'lodash-contrib'; +// import { Button } from '@chakra-ui/react'; // (unused) +// import { div } from 'lodash-contrib'; // (unused) + const Transaction = ({ id }) => { const PPN = process.env.NEXT_PUBLIC_PPN; const router = useRouter(); @@ -73,6 +74,7 @@ const Transaction = ({ id }) => { const [toOthers, setToOthers] = useState(null); const [totalAmount, setTotalAmount] = useState(0); const [totalDiscountAmount, setTotalDiscountAmount] = useState(0); + const [contLoading, setContLoading] = useState(false); useEffect(() => { if (transaction?.data?.products) { @@ -88,6 +90,7 @@ const Transaction = ({ id }) => { setTotalDiscountAmount(calculateTotalDiscountAmount); } }, [transaction.data, transaction.isLoading]); + const submitUploadPo = async () => { const file = poFile.current.files[0]; const name = poNumber.current.value; @@ -127,10 +130,6 @@ const Transaction = ({ id }) => { } } }; - // const ContinueTransaction = () => { - // setContinueNoPo(true); - // checkoutNoPO(); - // }; const closeCancelTransaction = () => setCancelTransaction(false); const closeContinueTransaction = () => setContinueTransaction(false); @@ -138,6 +137,7 @@ const Transaction = ({ id }) => { const openRejectTransaction = () => setRejectTransaction(true); const closeRejectTransaction = () => setRejectTransaction(false); + const submitCancelTransaction = async () => { const isCancelled = await cancelTransactionApi({ transaction: transaction.data, @@ -148,6 +148,7 @@ const Transaction = ({ id }) => { } closeCancelTransaction(); }; + const checkout = async () => { if (!transaction.data?.purchaseOrderFile) { toast.error('Mohon upload dokumen PO anda sebelum melanjutkan pesanan'); @@ -194,25 +195,6 @@ const Transaction = ({ id }) => { } toast.success('Berhasil melanjutkan pesanan'); transaction.refetch(); - // console.log(transaction); - - /* const midtrans = async () => { - for (const product of products) deleteItemCart({ productId: product.id }); - if (grandTotal > 0) { - const payment = await axios.post( - `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/midtrans-payment?transactionId=${isCheckouted.id}` - ); - setIsLoading(false); - window.location.href = payment.data.redirectUrl; - } else { - window.location.href = `${ - process.env.NEXT_PUBLIC_SELF_HOST - }/shop/checkout/success?order_id=${isCheckouted.name.replace( - /\//g, - '-' - )}`; - } - };*/ }; const handleApproval = async () => { @@ -227,6 +209,36 @@ const Transaction = ({ id }) => { transaction.refetch(); }; + // ===== Bayar Sekarang (pakai link dari backend; fallback generate via Next API) ===== + const handlePayNow = async () => { + try { + setContLoading(true); + // 1) gunakan URL yang sudah dikirim backend (jika ada) + const existingUrl = + transaction?.data?.paymentSummary?.redirectUrl || + transaction?.data?.paymentLinkMidtrans || + ''; + if (existingUrl) { + window.open(existingUrl, '_blank', 'noopener,noreferrer'); + toast.success('Membuka halaman pembayaran…'); + return; + } + // 2) fallback: panggil Next API untuk generate + const res = await axios.post( + `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/midtrans-payment?transactionId=${transaction.data.id}` + ); + window.location.href = res.data.redirectUrl; + } catch (e) { + toast.error( + e?.response?.data?.description || + e?.message || + 'Gagal membuka pembayaran' + ); + } finally { + setContLoading(false); + } + }; + const memoizeVariantGroupCard = useMemo( () => ( <div className='p-4 pt-0 flex flex-col gap-y-3'> @@ -314,7 +326,7 @@ const Transaction = ({ id }) => { navigator.clipboard.writeText(textToCopy); setCopied(true); toast.success('No Resi Berhasil di Copy'); - setTimeout(() => setCopied(false), 2000); // Reset copied state after 2 seconds + setTimeout(() => setCopied(false), 2000); }; const formatDate = (dateString) => { @@ -336,7 +348,7 @@ const Transaction = ({ id }) => { const [day, month, year] = dateString.split('/'); return `${day} ${months[parseInt(month, 10) - 1]} ${year}`; }; - // console.log(transaction); + return ( transaction.data?.name && ( <> @@ -366,6 +378,7 @@ const Transaction = ({ id }) => { </button> </div> </BottomPopup> + <BottomPopup active={cancelTransaction} close={closeCancelTransaction} @@ -488,12 +501,13 @@ const Transaction = ({ id }) => { <Manifest idAWB={idAWB} closePopup={closePopup}></Manifest> + {/* ============ MOBILE ============ */} <MobileView> <div className='px-4'> <div className='flex flex-row w-full justify-between items-center py-2 px-3 mb-4 text-sm border border-yellow-500 text-yellow-800 rounded-lg bg-yellow-50 gap-2'> - <div class='flex items-center w-full ' role='alert'> + <div className='flex items-center w-full ' role='alert'> <svg - class='flex-shrink-0 inline w-4 h-4 mr-2' + className='flex-shrink-0 inline w-4 h-4 mr-2' aria-hidden='true' fill='currentColor' viewBox='0 0 20 20' @@ -514,6 +528,7 @@ const Transaction = ({ id }) => { </span> </div> </div> + {auth?.feature?.soApproval && ( <div className='p-4'> <StepApproval @@ -559,7 +574,7 @@ const Transaction = ({ id }) => { <Divider /> <div className='flex flex-col gap-y-4 p-4'> - <h4 className="font-semibold">Detail Order</h4> + <h4 className='font-semibold'>Detail Order</h4> <DescriptionRow label='No Transaksi'> <p className='font-semibold'>{transaction.data?.name}</p> </DescriptionRow> @@ -579,9 +594,11 @@ const Transaction = ({ id }) => { <Divider /> <div className='flex flex-col gap-y-4 p-4'> - <h4 className="font-semibold">Alamat Pengiriman</h4> + <h4 className='font-semibold'>Alamat Pengiriman</h4> <DescriptionRow label='Nama Penerima'> - <p className='font-semibold'>{transaction?.data?.address?.customer?.name}</p> + <p className='font-semibold'> + {transaction?.data?.address?.customer?.name} + </p> </DescriptionRow> <DescriptionRow label='No. Telp'> {transaction?.data?.address?.customer?.phone @@ -602,9 +619,7 @@ const Transaction = ({ id }) => { <div className='p-4'> <div className='font-medium mb-4'>Info Pengiriman</div> {transaction?.data?.pickings.length == 0 && ( - <div className='badge-red text-sm'> - Belum ada pengiriman - </div> + <div className='badge-red text-sm'>Belum ada pengiriman</div> )} {transaction?.data?.pickings?.map((airway) => ( <div @@ -627,28 +642,7 @@ const Transaction = ({ id }) => { </button> </div> </div> - // <button - // className='shadow rounded-md p-3 text-gray_r-12 font-normal flex justify-between items-center text-left h-20' - // key={airway?.id} - // onClick={() => setIdAWB(airway?.id)} - // > - // <div> - // <span className='text-sm text-gray_r-11'> - // No Resi : {airway?.trackingNumber || '-'}{' '} - // </span> - // <p className='mt-1 font-medium'>{airway?.name}</p> - // </div> - // <div className='flex gap-x-2'> - // <div className='text-sm text-gray-600 badge-green leading-[1.5] mt-1'> - // {airway?.delivered - // ? 'Pesanan Tiba' - // : 'Sedang Dikirim'} - // </div> - // <ChevronRightIcon className='w-5 stroke-2' /> - // </div> - // </button> ))} - </div> <Divider /> @@ -717,17 +711,20 @@ const Transaction = ({ id }) => { <div className='font-medium p-4'>Detail Produk</div> {transaction?.data?.products.length > 0 ? ( <div className='p-4 pt-0 flex flex-col gap-y-3'> - <VariantGroupCard variants={transaction.data?.products}/> + <VariantGroupCard variants={transaction.data?.products} /> <div className='font-medium'>Rincian Pembayaran</div> <div className='flex justify-between mt-1'> <p className='text-gray_r-12/70'>Metode Pembayaran</p> - <p> - {transaction.data?.paymentTerm || '-'} - </p> + <p>{transaction.data?.paymentTerm || '-'}</p> </div> <div className='flex justify-between mt-1'> <p className='text-gray_r-12/70'>Berat Barang</p> - <p>{(transaction.data?.products?.reduce((total, item) => total + (item.weight || 0), 0)) + ' Kg'}</p> + <p> + {transaction.data?.products?.reduce( + (total, item) => total + (item.weight || 0), + 0 + ) + ' Kg'} + </p> </div> <hr className='mt-1 border border-gray-100' /> <div className='flex justify-between mt-1'> @@ -774,12 +771,7 @@ const Transaction = ({ id }) => { </div> )} - {/* <Divider /> */} - - {/* <SectionAddress address={transaction.data?.address} /> */} - - {/* <Divider /> */} - + {/* Tombol aksi (Mobile) */} {transaction.data?.status === 'draft' && ( <div className='p-4 pt-0'> <button @@ -796,18 +788,33 @@ const Transaction = ({ id }) => { Batalkan Transaksi </button> {transaction.data?.status == 'draft' && - transaction?.data?.purchaseOrderFile && ( - <button - className='btn-yellow w-full mt-4' - onClick={openContinueTransaction} - > - Lanjutkan Transaksi - </button> - )} + transaction?.data?.purchaseOrderFile && ( + <button + className='btn-yellow w-full mt-4' + onClick={openContinueTransaction} + > + Lanjutkan Transaksi + </button> + )} + </div> + )} + + {/* Bayar Sekarang (Mobile) — tampil jika eligible */} + {transaction.data?.eligibleContinue && ( + <div className='p-4 pt-0'> + <button + type='button' + disabled={contLoading} + onClick={handlePayNow} + className='w-full py-2 text-center rounded-md border border-red-500 text-red-500 bg-white disabled:opacity-60' + > + {contLoading ? 'Memproses…' : 'Bayar Sekarang'} + </button> </div> )} </MobileView> + {/* ============ DESKTOP ============ */} <DesktopView> <div className='container mx-auto flex py-10'> <div className='w-3/12 pr-4'> @@ -827,44 +834,36 @@ const Transaction = ({ id }) => { )} </div> - {/*new-release*/} - {/*<div className='flex items-center justify-between mb-3'>*/} - {/* <div className='flex items-center gap-x-2'>*/} - {/* <span className='text-h-sm font-medium'>*/} - {/* {transaction?.data?.name}*/} - {/* </span>*/} - {/* <TransactionStatusBadge status={transaction?.data?.status} />*/} - {/* </div>*/} - {/* <div className='text-h-sm'>*/} - {/* Estimasi Barang Siap:{' '}*/} - {/* <span className='text-red-500 font-semibold'>*/} - {/* {transaction?.data?.expectedReadyToShip}*/} - {/* </span>*/} - {/* </div>*/} - <div className='flex items-center gap-x-2 mb-3'> - <span className='text-h-sm font-medium'> - {transaction?.data?.name} - </span> - <TransactionStatusBadge status={transaction?.data?.status} /> - {transaction.data?.status === 'draft' && ( - <div className='flex items-center justify-between w-full'> - <button - type='button' - className='btn-light px-3 py-2' - onClick={() => downloadQuotation(transaction.data)} - > - <Download size={12} /> - </button> + {/* HEADER (Desktop) — sejajarkan kiri & kanan */} + <div className='flex items-center justify-between gap-3 mb-3'> + {/* Kiri: SO + badge */} + <div className='flex items-center gap-x-2 min-w-0'> + <span className='text-h-sm font-medium truncate'> + {transaction?.data?.name} + </span> + <TransactionStatusBadge status={transaction?.data?.status} /> + </div> + + {/* Kanan: aksi */} + <div className='flex items-center gap-3'> + {transaction.data?.status === 'draft' && ( + <> + <button + type='button' + className='btn-light px-3 py-2' + onClick={() => downloadQuotation(transaction.data)} + > + <Download size={12} /> + </button> - <div className="flex gap-x-4"> <button className='btn-solid-red' onClick={openCancelTransaction} > Batalkan Transaksi </button> - {transaction.data?.status == 'draft' && - transaction?.data?.purchaseOrderFile && ( + + {transaction?.data?.purchaseOrderFile && ( <button className='btn-yellow' onClick={openContinueTransaction} @@ -872,37 +871,20 @@ const Transaction = ({ id }) => { Lanjutkan Transaksi </button> )} - </div> - </div> - )} - </div> - {/* {transaction.data?.status === 'draft' && ( - <div className='flex gap-x-4'> - <button - type='button' - className='btn-light px-3 py-2 mr-auto' - onClick={() => downloadQuotation(transaction.data)} - > - <Download size={12} /> - </button> - <button - className='btn-solid-red' - onClick={openCancelTransaction} - > - Batalkan Transaksi - </button> - - {transaction.data?.status == 'draft' && - transaction?.data?.purchaseOrderFile && ( - <button - className='btn-yellow' - onClick={openContinueTransaction} - > - Lanjutkan Transaksi - </button> - )} + </> + )} + + {transaction.data?.eligibleContinue && ( + <button + className='px-4 py-2 rounded-md border border-red-500 text-red-500 bg-white disabled:opacity-60 mb-3' + disabled={contLoading} + onClick={handlePayNow} + > + {contLoading ? 'Memproses…' : 'Bayar Sekarang'} + </button> + )} </div> - )} */} + </div> <div className='grid grid-cols-2 gap-x-6 mt-4'> <div className='grid grid-cols-[35%_65%] gap-y-4'> @@ -967,29 +949,13 @@ const Transaction = ({ id }) => { key={index} > {invoice?.name} - {/* <div className='shadow rounded-md p-4 text-gray_r-12 font-normal flex justify-between'> - <div> - <p className='mb-1'>{invoice?.name}</p> - <div className='flex items-center gap-x-1'> - {invoice.amountResidual > 0 ? ( - <div className='badge-red'>Belum Lunas</div> - ) : ( - <div className='badge-green'>Lunas</div> - )} - <p className='text-caption-2 text-gray_r-11'> - {currencyFormat(invoice.amountTotal)} - </p> - </div> - </div> - <ChevronRightIcon className='w-5 stroke-2' /> - </div> */} </Link> ))} </div> </div> </div> <hr className='mt-4 mb-4 border border-gray-100' /> - {/* <div className='grid grid-cols-2 gap-x-6'> */} + <div className='flex flex-row justify-between items-start w-full h-fit '> <div className='flex flex-col w-1/2 justify-start items-start'> <span className='text-h-sm font-medium mb-2'> @@ -1039,17 +1005,17 @@ const Transaction = ({ id }) => { ) : ( '-' )} - {transaction?.data?.carrierId !== 32 &&( - <> - <div>Jenis Service</div> - <div>: </div> - <div> - {' '} - {transaction?.data?.serviceType - ? transaction?.data?.serviceType - : '-'} - </div> - </> + {transaction?.data?.carrierId !== 32 && ( + <> + <div>Jenis Service</div> + <div>: </div> + <div> + {' '} + {transaction?.data?.serviceType + ? transaction?.data?.serviceType + : '-'} + </div> + </> )} <div>Estimasi Tanggal Kirim</div> @@ -1059,41 +1025,42 @@ const Transaction = ({ id }) => { ? transaction?.data?.expectedReadyToShip : '-'} </div> - {transaction?.data?.carrierId !== 32 &&( - <> - <div>Estimasi Tiba</div> - <div>: </div> - <div className=''> - {transaction?.data?.etaDateStart && transaction?.data?.etaDateEnd ? ( - `${transaction.data.etaDateStart} - ${transaction.data.etaDateEnd}` - ) : ( - '-' - )} - </div> - </> + {transaction?.data?.carrierId !== 32 && ( + <> + <div>Estimasi Tiba</div> + <div>: </div> + <div className=''> + {transaction?.data?.etaDateStart && + transaction?.data?.etaDateEnd + ? `${transaction.data.etaDateStart} - ${transaction.data.etaDateEnd}` + : '-'} + </div> + </> )} - {transaction?.data?.pickings[0] && transaction?.data?.carrierId !== 32 && ( - <div className='w-full bagian-informasi col-span-3'> - <div - class='flex items-center w-fit py-2 px-3 mb-4 text-sm border border-yellow-500 text-yellow-800 rounded-lg bg-yellow-50' - role='alert' - > - <svg - class='flex-shrink-0 inline w-4 h-4 mr-2' - aria-hidden='true' - fill='currentColor' - viewBox='0 0 20 20' + {transaction?.data?.pickings[0] && + transaction?.data?.carrierId !== 32 && ( + <div className='w-full bagian-informasi col-span-3'> + <div + className='flex items-center w-fit py-2 px-3 mb-4 text-sm border border-yellow-500 text-yellow-800 rounded-lg bg-yellow-50' + role='alert' > - <path d='M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5ZM9.5 4a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM12 15H8a1 1 0 0 1 0-2h1v-3H8a1 1 0 0 1 0-2h2a1 1 0 0 1 1 1v4h1a1 1 0 0 1 0 2Z' /> - </svg> - <div className='text-justify flex flex-col gap-1'> - <span className='text-black text-xs'> - Pesanan anda mungkin mengalami keterlambatan tiba - </span> + <svg + className='flex-shrink-0 inline w-4 h-4 mr-2' + aria-hidden='true' + fill='currentColor' + viewBox='0 0 20 20' + > + <path d='M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5ZM9.5 4a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM12 15H8a1 1 0 0 1 0-2h1v-3H8a1 1 0 0 1 0-2h2a1 1 0 0 1 1 1v4h1a1 1 0 0 1 0 2Z' /> + </svg> + <div className='text-justify flex flex-col gap-1'> + <span className='text-black text-xs'> + Pesanan anda mungkin mengalami keterlambatan + tiba + </span> + </div> </div> </div> - </div> - )} + )} </div> </div> </div> @@ -1103,9 +1070,7 @@ const Transaction = ({ id }) => { </div> <div className='grid grid-cols-1 md:grid-cols-2 gap-3'> {transaction?.data?.pickings.length == 0 && ( - <div className='badge-red text-sm'> - Belum ada pengiriman - </div> + <div className='badge-red text-sm'>Belum ada pengiriman</div> )} {transaction?.data?.pickings?.map((airway) => ( <div @@ -1129,39 +1094,9 @@ const Transaction = ({ id }) => { </div> </div> ))} - {/* </div> */} - </div> <div className='flex '> - {/*New release*/} - {/* <div className='grid grid-cols-1 gap-1 w-2/3'>*/} - {/* {transaction?.data?.pickings?.map((airway) => (*/} - {/* <button*/} - {/* className='shadow rounded-md p-3 text-gray_r-12 font-normal flex justify-between items-center text-left h-20'*/} - {/* key={airway?.id}*/} - {/* onClick={() => setIdAWB(airway?.id)}*/} - {/* >*/} - {/* <div>*/} - {/* <p className='text-sm text-gray_r-11'>*/} - {/* {airway?.name}*/} - {/* </p>*/} - {/* <span className='text-md text-bold mt-1'>*/} - {/* No Resi : {airway?.trackingNumber || '-'}{' '}*/} - {/* </span>*/} - {/* </div>*/} - {/* <div className='flex gap-x-2'>*/} - {/* <div className='text-sm text-gray-600 badge-green leading-[1.5] mt-1 text-center'>*/} - {/* {airway?.delivered*/} - {/* ? 'Pesanan Tiba'*/} - {/* : 'Sedang Dikirim'}*/} - {/* </div>*/} - {/* <ChevronRightIcon className='w-5 stroke-2' />*/} - {/* </div>*/} - {/* </button>*/} - {/* ))}*/} - {/* </div>*/} - {/*</div>*/} <div className='invoice w-1/2 '> <div className='text-h-sm font-semibold mt-10 mb-4 '> Invoice @@ -1202,7 +1137,6 @@ const Transaction = ({ id }) => { <thead> <tr> <th>Nama Produk</th> - {/* <th>Diskon</th> */} <th>Jumlah</th> <th>Harga</th> <th>Subtotal</th> @@ -1280,24 +1214,13 @@ const Transaction = ({ id }) => { )} </div> </td> - {/* <td> - {product.price.discountPercentage > 0 - ? `${product.price.discountPercentage}%` - : ''} - </td> */} <td>{product.quantity}</td> <td> - {/* {product.price.discountPercentage > 0 && ( - <div className='line-through mb-1 text-caption-1 text-gray_r-12/70'> - {currencyFormat(product.price.price)} - </div> - )} */} <div> {currencyFormat(product.price.priceDiscount)} </div> </td> <td>{currencyFormat(product.price.subtotal)}</td> - {/* {auth?.feature.soApproval && (auth.webRole == 2 || auth.webRole == 3) && (transaction.data.isReaject == false) && ( */} {auth?.feature.soApproval && (auth.webRole == 2 || auth.webRole == 3) && router.asPath.includes('/my/quotations/') && @@ -1354,34 +1277,6 @@ const Transaction = ({ id }) => { )} {transaction?.data?.products?.length > 0 && ( - // <div className='flex justify-end mt-4'> - // <div className='w-1/4 grid grid-cols-2 gap-y-3 text-gray_r-12/80'> - // <div className='text-right'>Subtotal</div> - // <div className='text-right font-medium'> - // {currencyFormat(transaction.data?.amountUntaxed)} - // </div> - - // <div className='text-right'> - // PPN {((PPN - 1) * 100).toFixed(0)}% - // </div> - // <div className='text-right font-medium'> - // {currencyFormat(transaction.data?.amountTax)} - // </div> - - // <div className='text-right whitespace-nowrap'> - // Biaya Pengiriman - // </div> - // <div className='text-right font-medium'> - // {currencyFormat(transaction.data?.deliveryAmount)} - // </div> - - // <div className='text-right'>Grand Total</div> - // <div className='text-right font-medium text-gray_r-12'> - // {currencyFormat(transaction.data?.amountTotal)} - // </div> - // </div> - // </div> - <div className='flex justify-end mt-4 flex-col items-end'> <div className='w-1/4 grid grid-cols-2 gap-y-3 text-gray_r-12/80'> <div className='text-right'>Total Belanja</div> @@ -1437,7 +1332,6 @@ const Transaction = ({ id }) => { <thead> <tr> <th>Nama Produk</th> - {/* <th>Diskon</th> */} <th>Jumlah</th> <th>Harga</th> <th>Subtotal</th> @@ -1480,18 +1374,8 @@ const Transaction = ({ id }) => { </div> </div> </td> - {/* <td> - {product.price.discountPercentage > 0 - ? `${product.price.discountPercentage}%` - : ''} - </td> */} <td>{product.quantity}</td> <td> - {/* {product.price.discountPercentage > 0 && ( - <div className='line-through mb-1 text-caption-1 text-gray_r-12/70'> - {currencyFormat(product.price.price)} - </div> - )} */} <div> {currencyFormat(product.price.priceDiscount)} </div> @@ -1512,58 +1396,6 @@ const Transaction = ({ id }) => { </div> </div> </DesktopView> - - {/* {queryAirwayBill.data?.airways?.map((airway) => ( - <BottomPopup - key={airway.waybillNumber} - title='Detail Pengiriman' - active={airwayBillPopup == airway.waybillNumber} - close={() => setAirwayBillPopup(null)} - > - <div className='flex flex-col gap-y-4 my-4'> - <div className='flex justify-between'> - <div className='text-gray_r-11'>No Pengiriman</div> - <div>{airway?.deliveryOrder?.name}</div> - </div> - <div className='flex justify-between'> - <div className='text-gray_r-11'>Kurir</div> - <div>{airway?.deliveryOrder?.carrier}</div> - </div> - <div className='flex justify-between'> - <div className='text-gray_r-11'>No Resi</div> - <div>{airway?.waybillNumber}</div> - </div> - </div> - - <div className='pt-4'> - <div className='font-semibold text-body-1 mb-4'>Status Pengiriman</div> - <ol class='relative border-l border-gray_r-7'> - {airway?.manifests?.map((manifest, index) => ( - <li class='mb-6 ml-4' key={index}> - <div - class={`absolute w-3 h-3 rounded-full mt-1.5 -left-1.5 border ${ - index == 0 ? 'bg-red-600 border-red-600' : 'bg-gray_r-7 border-white' - }`} - /> - <time class='text-sm leading-none text-gray-400'> - {manifest.datetime} - </time> - <p - class={`leading-6 font-medium text-body-2 mt-2 ${ - index == 0 ? 'text-red-600' : 'text-gray_r-11' - }`} - > - {manifest.description} - </p> - </li> - ))} - {(!airway?.manifests || airway?.manifests?.length == 0) && ( - <div className='badge-red text-sm'>Belum ada pengiriman</div> - )} - </ol> - </div> - </BottomPopup> - ))} */} </> ) ); @@ -1589,24 +1421,7 @@ const SectionAddress = ({ address }) => { {section.customer && <SectionContent address={address?.customer} />} - {/* <Divider /> - - <SectionButton - label='Detail Pengiriman' - active={section.shipping} - toggle={() => toggleSection('shipping')} - /> - - {section.shipping && <SectionContent address={address?.shipping} />} - - <Divider /> - - <SectionButton - label='Detail Penagihan' - active={section.invoice} - toggle={() => toggleSection('invoice')} - /> - {section.invoice && <SectionContent address={address?.invoice} />} */} + {/* Bagian shipping/invoice disembunyikan */} </> ); }; |
