summaryrefslogtreecommitdiff
path: root/src/lib/flashSale/components/FlashSale.jsx
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-01-02 09:36:29 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-01-02 09:36:29 +0700
commita49c62c01c09a950ccdb16b1def75ae590dc0930 (patch)
tree9b1fad3d00c2280b40ab838abc29fa2c77ada721 /src/lib/flashSale/components/FlashSale.jsx
parentf66b00a36b39a1efd506fc7d96a240c10e77ec62 (diff)
<iman> update duration flashsale
Diffstat (limited to 'src/lib/flashSale/components/FlashSale.jsx')
-rw-r--r--src/lib/flashSale/components/FlashSale.jsx14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/flashSale/components/FlashSale.jsx b/src/lib/flashSale/components/FlashSale.jsx
index f4be279e..715c25c5 100644
--- a/src/lib/flashSale/components/FlashSale.jsx
+++ b/src/lib/flashSale/components/FlashSale.jsx
@@ -9,13 +9,23 @@ import { FlashSaleSkeleton } from '../skeleton/FlashSaleSkeleton';
const FlashSale = () => {
const [flashSales, setFlashSales] = useState(null);
const [isLoading, setIsLoading] = useState(true);
+ const [duration, setDuration] = useState();
+ const calculateRemainingTime = (endDate) => {
+ const currentTime = new Date();
+ const endTime = new Date(endDate);
+ const remainingTimeInSeconds = (endTime - currentTime) / 1000;
+
+ return Math.max(Math.round(remainingTimeInSeconds), 0);
+ };
useEffect(() => {
const loadFlashSales = async () => {
const res = await fetch('/api/flashsale-header');
const { data } = await res.json();
if (data) {
setFlashSales(data);
+ const remainingTime = calculateRemainingTime(data[0].endDate);
+ setDuration(remainingTime);
}
setIsLoading(false);
};
@@ -37,7 +47,7 @@ const FlashSale = () => {
<div className='font-medium sm:text-h-lg mt-1.5'>
{flashSale.name}
</div>
- <CountDown initialTime={flashSale.duration} />
+ <CountDown initialTime={duration} />
</div>
<div className='relative'>
@@ -59,7 +69,7 @@ const FlashSale = () => {
/>
<FlashSaleProduct
flashSaleId={flashSale.pricelistId}
- duration={flashSale.duration}
+ duration={duration}
/>
</div>
</div>