diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-04-26 17:23:52 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-04-26 17:23:52 +0700 |
| commit | b02510e26e7e9bc292a1779bd23801014b94aad4 (patch) | |
| tree | 74f0892f8389d563367f296d5005ab44e8cec446 /src/lib/flashSale | |
| parent | 0a548e87febeab3d25ba7d5270b73b757f130b26 (diff) | |
flash sale and countdown
Diffstat (limited to 'src/lib/flashSale')
| -rw-r--r-- | src/lib/flashSale/api/flashSaleApi.js | 8 | ||||
| -rw-r--r-- | src/lib/flashSale/components/FlashSale.jsx | 37 |
2 files changed, 45 insertions, 0 deletions
diff --git a/src/lib/flashSale/api/flashSaleApi.js b/src/lib/flashSale/api/flashSaleApi.js new file mode 100644 index 00000000..115b07dc --- /dev/null +++ b/src/lib/flashSale/api/flashSaleApi.js @@ -0,0 +1,8 @@ +import odooApi from '@/core/api/odooApi' + +const flashSaleApi = async () => { + const flashSale = await odooApi('GET', '/api/v1/flashsale/header') + return flashSale +} + +export default flashSaleApi diff --git a/src/lib/flashSale/components/FlashSale.jsx b/src/lib/flashSale/components/FlashSale.jsx new file mode 100644 index 00000000..0167dc57 --- /dev/null +++ b/src/lib/flashSale/components/FlashSale.jsx @@ -0,0 +1,37 @@ +import { useEffect, useState } from 'react' +import flashSaleApi from '../api/flashSaleApi' +import Image from '@/core/components/elements/Image/Image' +import CountDown from '@/core/components/elements/CountDown/CountDown' + +const FlashSale = () => { + const [flashSales, setFlashSales] = useState(null) + + useEffect(() => { + const loadFlashSales = async () => { + const dataFlashSales = await flashSaleApi() + setFlashSales(dataFlashSales) + } + loadFlashSales() + }, []) + + return flashSales?.length > 0 && ( + <div className='px-4 sm:px-0'> + + {flashSales.map((flashSale, index) => ( + <div key={index}> + <div className='font-medium sm:text-h-lg mb-4'>{flashSale.name}</div> + + <div className='relative'> + <div className='absolute top-0 left-0 p-4'> + <CountDown initialTime={flashSale.duration} /> + </div> + <Image src={flashSale.banner} alt={flashSale.name} className='w-full rounded' /> + </div> + + </div> + ))} + </div> + ) +} + +export default FlashSale |
