summaryrefslogtreecommitdiff
path: root/src-migrate/modules/product-detail/components/PriceAction.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src-migrate/modules/product-detail/components/PriceAction.tsx')
-rw-r--r--src-migrate/modules/product-detail/components/PriceAction.tsx53
1 files changed, 53 insertions, 0 deletions
diff --git a/src-migrate/modules/product-detail/components/PriceAction.tsx b/src-migrate/modules/product-detail/components/PriceAction.tsx
new file mode 100644
index 00000000..8189e5bd
--- /dev/null
+++ b/src-migrate/modules/product-detail/components/PriceAction.tsx
@@ -0,0 +1,53 @@
+import style from '../styles/price-action.module.css'
+
+import React, { useEffect } from 'react'
+import formatCurrency from '~/libs/formatCurrency'
+import { formatToShortText } from '~/libs/formatNumber'
+import { IProductDetail } from '~/types/product'
+import { useProductDetail } from '../stores/useProductDetail'
+import AddToCart from './AddToCart'
+
+type Props = {
+ product: IProductDetail
+}
+
+const PriceAction = ({ product }: Props) => {
+ const { activePrice, setActive, activeVariantId, quantityInput, setQuantityInput } = useProductDetail()
+
+ useEffect(() => {
+ setActive(product.variants[0])
+ }, [product, setActive]);
+
+ return (
+ <div className='block md:sticky top-[150px] bg-white py-0 md:py-6 z-10'>
+ {product.qty_sold > 0 && (
+ <div className={style['secondary-text']}>
+ {formatToShortText(product.qty_sold)} Terjual
+ </div>
+ )}
+ <div className='h-2' />
+ <div className={style['main-price']}>
+ Rp {formatCurrency(activePrice?.price || 0)}
+ </div>
+ <div className='h-1' />
+ <div className={style['secondary-text']}>
+ {!!activePrice && (
+ <>
+ Termasuk PPN: {' '}
+ Rp {formatCurrency(Math.round(activePrice?.price * 1.11))}
+ </>
+ )}
+ </div>
+
+ <div className='h-4' />
+
+ <div className={style['action-wrapper']}>
+ <input type='number' value={quantityInput} onChange={(e) => setQuantityInput(e.target.value)} className={style['quantity-input']} />
+ <AddToCart variantId={activeVariantId} quantity={Number(quantityInput)} />
+ <AddToCart source='buy' variantId={activeVariantId} quantity={Number(quantityInput)} />
+ </div>
+ </div>
+ )
+}
+
+export default PriceAction \ No newline at end of file