summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHATEC\SPVDEV001 <tri.susilo@altama.co.id>2023-07-10 16:56:58 +0700
committerHATEC\SPVDEV001 <tri.susilo@altama.co.id>2023-07-10 16:56:58 +0700
commitbdb8aa884317fdca72a20989f73764fdde06f42e (patch)
tree45eab256261f97113f04e89f4fd9c1eae4751041
parent502ea2700003e8959f3d81c8978126da0d3b9828 (diff)
layouting
-rw-r--r--src/lib/checkout/api/getVoucher.js8
-rw-r--r--src/lib/checkout/components/Checkout.jsx134
2 files changed, 136 insertions, 6 deletions
diff --git a/src/lib/checkout/api/getVoucher.js b/src/lib/checkout/api/getVoucher.js
new file mode 100644
index 00000000..68185021
--- /dev/null
+++ b/src/lib/checkout/api/getVoucher.js
@@ -0,0 +1,8 @@
+import odooApi from '@/core/api/odooApi'
+
+const getVoucher = async () => {
+ const dataVoucher = await odooApi('GET', `/api/v1/voucher`)
+ return dataVoucher
+}
+
+export default getVoucher
diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx
index 6cb735fe..629ec5bc 100644
--- a/src/lib/checkout/components/Checkout.jsx
+++ b/src/lib/checkout/components/Checkout.jsx
@@ -24,6 +24,7 @@ import whatsappUrl from '@/core/utils/whatsappUrl'
import { createSlug } from '@/core/utils/slug'
import BottomPopup from '@/core/components/elements/Popup/BottomPopup'
import { gtagPurchase } from '@/core/utils/googleTag'
+import getVoucher from '../api/getVoucher'
const SELF_PICKUP_ID = 32
@@ -81,7 +82,13 @@ const Checkout = () => {
const [selectedExpedisiService, setselectedExpedisiService] = useState(null)
const [etd, setEtd] = useState(null)
const [etdFix, setEtdFix] = useState(null)
+ const [bottomPopup, SetBottomPopup] = useState(null)
+ const [listVouchers, SetListVoucher] = useState(null)
+ const voucher = async () => {
+ let dataVoucher = await getVoucher()
+ SetListVoucher(dataVoucher)
+ }
useEffect(() => {
const loadExpedisi = async () => {
let dataExpedisi = await ExpedisiList()
@@ -93,8 +100,11 @@ const Checkout = () => {
setExpedisi(dataExpedisi)
}
loadExpedisi()
+ voucher()
}, [])
+ console.log('ini voucher', listVouchers)
+
useEffect(() => {
const loadProducts = async () => {
let variantIds = ''
@@ -260,6 +270,95 @@ const Checkout = () => {
return (
<>
+ <BottomPopup active={bottomPopup} close={() => SetBottomPopup(false)} title='Gunakan Promo'>
+ <div className='row'>
+ <div className='flex justify-between items-center'>
+ <div className='flex w-[70%]'>
+ <input
+ type='text'
+ id='companyName'
+ name='companyName'
+ className='form-input w-full rounded-md'
+ placeholder=''
+ autoCapitalize='true'
+ />
+ </div>
+ <div className='flex'>
+ <button className='btn-solid-red flex-1 md:flex-none rounded-md' type='button'>
+ Terapkan
+ </button>
+ </div>
+ </div>
+
+ <hr className='mt-14 my-4 border-gray_r-10' />
+ <div className=''>
+ <h3 className='font-semibold mb-4'>Promo yang tersedia</h3>
+ {listVouchers?.map((item) => (
+ <div
+ key={item.id}
+ className={`border border-solid mb-5 w-full hover:cursor-pointer p-4 `}
+ >
+ <div className={`flex gap-x-3`}>
+ <div className=''>
+ <Image src={item.image} alt={item.name} className={`object-cover`} />
+ </div>
+ <div className='w-full'>
+ <div className='flex justify-between mb-1 items-center'>
+ <div className=''>
+ <h3 className='font-semibold'>{item.name}</h3>
+ <div className='mt-1'>
+ <span className='text-caption-1'>{item.description} </span>
+ </div>
+ </div>
+ <div className=''>
+ <button
+ className='btn-solid-red flex-1 md:flex-none rounded-md'
+ type='button'
+ >
+ Pakai
+ </button>
+ </div>
+ </div>
+ <hr className='mt-1 my-4 border-gray_r-8' />
+ <p className='text-justify'>
+ Kode Voucher :{' '}
+ <span className='text-red-500 font-semibold'>{item.code}</span>
+ </p>
+ </div>
+ </div>
+ <div className='mt-3'>
+ <p className='text-justify '>
+ Voucher ini dapat anda gunakan untuk pengguna pertama{' '}
+ </p>
+ <hr className='mt-2 my-4 border-gray_r-8' />
+ <div className='flex items-center'>
+ <svg
+ aria-hidden='true'
+ fill='none'
+ stroke='currentColor'
+ stroke-width='1.5'
+ viewBox='0 0 24 24'
+ className='w-5 text-black'
+ >
+ <path
+ d='M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z'
+ stroke-linecap='round'
+ stroke-linejoin='round'
+ ></path>
+ </svg>
+ <span className='text-left ml-3 text-sm'>
+ Berakhir dalam <span>{item.endTime}</span> lagi !{' '}
+ <Link href='#' className='inline font-normal'>
+ Lihat Detail
+ </Link>
+ </span>
+ </div>
+ </div>
+ </div>
+ ))}
+ </div>
+ </div>
+ </BottomPopup>
<MobileView>
<div className='p-4'>
<Alert type='info' className='text-caption-2 flex gap-x-3'>
@@ -353,6 +452,22 @@ const Checkout = () => {
)}
</div>
</div>
+
+ <hr className='my-4 border-gray_r-6' />
+
+ <div className='mt-4 mb-4'>
+ <button
+ type='button'
+ onClick={() => SetBottomPopup(true)}
+ className='text-gray-900 flex items-center justify-center rounded-lg bg-white border font-medium border-gray-300 hover:bg-gray-100 py-2.5 h-[50px] w-[100%]'
+ >
+ <span className='text-left text-gray_r-9'>%</span>
+ <span className='text-left ml-3 text-sm text-gray_r-9'>
+ Hemat belanja dengan promo
+ </span>
+ <span className='text-left ml-5 text-gray_r-9'>{'>'}</span>
+ </button>
+ </div>
{/* <p className='text-caption-2 text-gray_r-10 mb-2'>*) Belum termasuk biaya pengiriman</p> */}
<p className='text-caption-2 text-gray_r-10 leading-5'>
Dengan melakukan pembelian melalui website Indoteknik, saya menyetujui{' '}
@@ -581,12 +696,19 @@ const Checkout = () => {
<hr className='my-4 border-gray_r-6' />
- <button
- className='w-full btn-yellow mt-4 mb-4'
- onClick={checkout}
- >
- <span className='text-sm'>{'Hemat belanja dengan promo >'}</span>
- </button>
+ <div className='mt-4 mb-4'>
+ <button
+ type='button'
+ onClick={() => SetBottomPopup(true)}
+ className='text-gray-900 flex items-center justify-center rounded-lg bg-white border font-medium border-gray-300 hover:bg-gray-100 py-2.5 h-[50px] w-[100%]'
+ >
+ <span className='text-left text-gray_r-9'>%</span>
+ <span className='text-left ml-3 text-sm text-gray_r-9'>
+ Hemat belanja dengan promo
+ </span>
+ <span className='text-left ml-5 text-gray_r-9'>{'>'}</span>
+ </button>
+ </div>
<p className='text-caption-2 text-gray_r-11 leading-5'>
Dengan melakukan pembelian melalui website Indoteknik, saya menyetujui{' '}