From f66b12fd1d0b83af0d7230d7b1565fbe00afbe3c Mon Sep 17 00:00:00 2001
From: Rafi Zadanly <zadanlyr@gmail.com>
Date: Wed, 22 Feb 2023 11:03:34 +0700
Subject: prettier

---
 src/lib/product/components/Product.jsx | 230 +++++++++++++++------------------
 1 file changed, 104 insertions(+), 126 deletions(-)

(limited to 'src/lib/product/components/Product.jsx')

diff --git a/src/lib/product/components/Product.jsx b/src/lib/product/components/Product.jsx
index 92f4e37d..2181c38e 100644
--- a/src/lib/product/components/Product.jsx
+++ b/src/lib/product/components/Product.jsx
@@ -1,41 +1,40 @@
-import Badge from "@/core/components/elements/Badge/Badge"
-import Divider from "@/core/components/elements/Divider/Divider"
-import Image from "@/core/components/elements/Image/Image"
-import Link from "@/core/components/elements/Link/Link"
-import currencyFormat from "@/core/utils/currencyFormat"
-import { useEffect, useState } from "react"
-import Select from "react-select"
-import ProductSimilar from "./ProductSimilar"
-import LazyLoad from "react-lazy-load"
-import { toast } from "react-hot-toast"
-import { updateItemCart } from "@/core/utils/cart"
+import Badge from '@/core/components/elements/Badge/Badge'
+import Divider from '@/core/components/elements/Divider/Divider'
+import Image from '@/core/components/elements/Image/Image'
+import Link from '@/core/components/elements/Link/Link'
+import currencyFormat from '@/core/utils/currencyFormat'
+import { useEffect, useState } from 'react'
+import Select from 'react-select'
+import ProductSimilar from './ProductSimilar'
+import LazyLoad from 'react-lazy-load'
+import { toast } from 'react-hot-toast'
+import { updateItemCart } from '@/core/utils/cart'
 
 const informationTabOptions = [
   { value: 'specification', label: 'Spesifikasi' },
   { value: 'description', label: 'Deskripsi' },
-  { value: 'important', label: 'Info Penting' },
+  { value: 'important', label: 'Info Penting' }
 ]
 
 const Product = ({ product }) => {
-  const [ quantity, setQuantity ] = useState('1')
-  const [ selectedVariant, setSelectedVariant ] = useState(null)
-  const [ informationTab, setInformationTab ] = useState(null)
+  const [quantity, setQuantity] = useState('1')
+  const [selectedVariant, setSelectedVariant] = useState(null)
+  const [informationTab, setInformationTab] = useState(null)
 
-  const [ activeVariant, setActiveVariant ] = useState({
+  const [activeVariant, setActiveVariant] = useState({
     id: product.id,
     code: product.code,
     name: product.name,
     price: product.lowestPrice,
     stock: product.stockTotal,
-    weight: product.weight,
+    weight: product.weight
   })
-  
+
   const variantOptions = product.variants?.map((variant) => ({
     value: variant.id,
-    label: 
-      (variant.code ? `[${variant.code}] ` : '')
-      +
-      (variant.attributes.length > 0 ? variant.attributes.join(', ') : product.name) 
+    label:
+      (variant.code ? `[${variant.code}] ` : '') +
+      (variant.attributes.length > 0 ? variant.attributes.join(', ') : product.name)
   }))
 
   useEffect(() => {
@@ -46,9 +45,10 @@ const Product = ({ product }) => {
 
   useEffect(() => {
     if (selectedVariant) {
-      const variant = product.variants.find(variant => variant.id == selectedVariant.value)
-      const variantAttributes = variant.attributes.length > 0 ? ' - ' + variant.attributes.join(', ') : ''
-      
+      const variant = product.variants.find((variant) => variant.id == selectedVariant.value)
+      const variantAttributes =
+        variant.attributes.length > 0 ? ' - ' + variant.attributes.join(', ') : ''
+
       setActiveVariant({
         id: variant.id,
         code: variant.code,
@@ -87,76 +87,69 @@ const Product = ({ product }) => {
       <Image
         src={product.image}
         alt={product.name}
-        className="h-72 object-contain object-center w-full border-b border-gray_r-4"
+        className='h-72 object-contain object-center w-full border-b border-gray_r-4'
       />
 
-      <div className="p-4">
-        <Link href="/" className="mb-2">{ product.manufacture?.name }</Link>
-        <h1 className="leading-6 font-medium">
-          {activeVariant?.name}
-        </h1>
-        { activeVariant?.price?.discountPercentage > 0 && (
-          <div className="flex gap-x-1 items-center mt-2">
-            <div className="text-gray_r-11 line-through text-caption-1">
+      <div className='p-4'>
+        <Link href='/' className='mb-2'>
+          {product.manufacture?.name}
+        </Link>
+        <h1 className='leading-6 font-medium'>{activeVariant?.name}</h1>
+        {activeVariant?.price?.discountPercentage > 0 && (
+          <div className='flex gap-x-1 items-center mt-2'>
+            <div className='text-gray_r-11 line-through text-caption-1'>
               {currencyFormat(activeVariant?.price?.price)}
             </div>
-            <Badge type="solid-red">
-              {activeVariant?.price?.discountPercentage}%
-            </Badge>
+            <Badge type='solid-red'>{activeVariant?.price?.discountPercentage}%</Badge>
           </div>
-        ) }
-        <h3 className="text-red_r-11 font-semibold mt-1">
-          { activeVariant?.price?.priceDiscount > 0 ? currencyFormat(activeVariant?.price?.priceDiscount) : (
-            <span className="text-gray_r-11 leading-6 font-normal">
+        )}
+        <h3 className='text-red_r-11 font-semibold mt-1'>
+          {activeVariant?.price?.priceDiscount > 0 ? (
+            currencyFormat(activeVariant?.price?.priceDiscount)
+          ) : (
+            <span className='text-gray_r-11 leading-6 font-normal'>
               Hubungi kami untuk dapatkan harga terbaik,&nbsp;
-              <a href="https://wa.me/" className="text-red_r-11 underline">klik disini</a>
+              <a href='https://wa.me/' className='text-red_r-11 underline'>
+                klik disini
+              </a>
             </span>
-          ) }
+          )}
         </h3>
       </div>
 
       <Divider />
 
-      <div className="p-4">
+      <div className='p-4'>
         <div>
-          <label className="flex justify-between">
+          <label className='flex justify-between'>
             Pilih Varian:
-            <span className="text-gray_r-11">
-              { product?.variantTotal } Varian
-            </span>
+            <span className='text-gray_r-11'>{product?.variantTotal} Varian</span>
           </label>
           <Select
-            name="variant"
-            classNamePrefix="form-select"
+            name='variant'
+            classNamePrefix='form-select'
             options={variantOptions}
-            className="mt-2"
+            className='mt-2'
             value={selectedVariant}
             onChange={(option) => setSelectedVariant(option)}
             isSearchable={product.variantTotal > 10}
           />
         </div>
-        <div className="mt-4 mb-2">Jumlah</div>
-        <div className="flex gap-x-3">
-          <div className="w-2/12">
-            <input 
-              name="quantity"
-              type="number" 
-              className="form-input" 
+        <div className='mt-4 mb-2'>Jumlah</div>
+        <div className='flex gap-x-3'>
+          <div className='w-2/12'>
+            <input
+              name='quantity'
+              type='number'
+              className='form-input'
               value={quantity}
               onChange={(e) => setQuantity(e.target.value)}
             />
           </div>
-          <button 
-            type="button"
-            className="btn-yellow flex-1"
-            onClick={handleClickCart}
-          >
+          <button type='button' className='btn-yellow flex-1' onClick={handleClickCart}>
             Keranjang
           </button>
-          <button 
-            type="button"
-            className="btn-solid-red flex-1"
-          >
+          <button type='button' className='btn-solid-red flex-1'>
             Beli
           </button>
         </div>
@@ -164,78 +157,70 @@ const Product = ({ product }) => {
 
       <Divider />
 
-      <div className="p-4">
-        <h2 className="font-semibold">Informasi Produk</h2>
-        <div className="flex gap-x-4 mt-4 mb-3">
-          { informationTabOptions.map((option) => (
-            <TabButton 
-              value={option.value} 
+      <div className='p-4'>
+        <h2 className='font-semibold'>Informasi Produk</h2>
+        <div className='flex gap-x-4 mt-4 mb-3'>
+          {informationTabOptions.map((option) => (
+            <TabButton
+              value={option.value}
               key={option.value}
               active={informationTab == option.value}
               onClick={() => setInformationTab(option.value)}
             >
               {option.label}
             </TabButton>
-          )) }
+          ))}
         </div>
 
-        <TabContent 
-          active={informationTab == 'specification'} 
-          className="rounded border border-gray_r-6 divide-y divide-gray_r-6"
+        <TabContent
+          active={informationTab == 'specification'}
+          className='rounded border border-gray_r-6 divide-y divide-gray_r-6'
         >
-          <SpecificationContent label="Jumlah Varian">
+          <SpecificationContent label='Jumlah Varian'>
             <span>{product?.variantTotal} Varian</span>
           </SpecificationContent>
-          <SpecificationContent label="Nomor SKU">
+          <SpecificationContent label='Nomor SKU'>
             <span>SKU-{product?.id}</span>
           </SpecificationContent>
-          <SpecificationContent label="Part Number">
+          <SpecificationContent label='Part Number'>
             <span>{activeVariant?.code || '-'}</span>
-          </SpecificationContent>   
-          <SpecificationContent label="Stok">
-            { activeVariant?.stock > 0 && (
-              <span className="flex gap-x-1.5">
-                <div className="badge-solid-red">Ready Stock</div>
-                <div className="badge-gray">
-                  { activeVariant?.stock > 5 ? '> 5' : '< 5' }
-                </div>
+          </SpecificationContent>
+          <SpecificationContent label='Stok'>
+            {activeVariant?.stock > 0 && (
+              <span className='flex gap-x-1.5'>
+                <div className='badge-solid-red'>Ready Stock</div>
+                <div className='badge-gray'>{activeVariant?.stock > 5 ? '> 5' : '< 5'}</div>
               </span>
-            ) }
-            { activeVariant?.stock == 0 && (
-              <a 
-                href="https://wa.me" 
-                className="text-red_r-11 font-medium"
-              >
+            )}
+            {activeVariant?.stock == 0 && (
+              <a href='https://wa.me' className='text-red_r-11 font-medium'>
                 Tanya Stok
               </a>
-            ) }
-          </SpecificationContent>   
-          <SpecificationContent label="Berat Barang">
-            { activeVariant?.weight > 0 && (
-              <span>{ activeVariant?.weight } KG</span>
-            ) }
-            { activeVariant?.weight == 0 && (
-              <a 
-                href="https://wa.me" 
-                className="text-red_r-11 font-medium"
-              >
+            )}
+          </SpecificationContent>
+          <SpecificationContent label='Berat Barang'>
+            {activeVariant?.weight > 0 && <span>{activeVariant?.weight} KG</span>}
+            {activeVariant?.weight == 0 && (
+              <a href='https://wa.me' className='text-red_r-11 font-medium'>
                 Tanya Berat
               </a>
-            ) }
-          </SpecificationContent>   
+            )}
+          </SpecificationContent>
         </TabContent>
 
         <TabContent
           active={informationTab == 'description'}
-          className="leading-6 text-gray_r-11"
-          dangerouslySetInnerHTML={{__html: (product.description != '' ? product.description : 'Belum ada deskripsi produk.')}}
+          className='leading-6 text-gray_r-11'
+          dangerouslySetInnerHTML={{
+            __html: product.description != '' ? product.description : 'Belum ada deskripsi produk.'
+          }}
         />
       </div>
 
       <Divider />
 
-      <div className="p-4">
-        <h2 className="font-semibold mb-4">Kamu Mungkin Juga Suka</h2>
+      <div className='p-4'>
+        <h2 className='font-semibold mb-4'>Kamu Mungkin Juga Suka</h2>
         <LazyLoad>
           <ProductSimilar query={product?.name.split(' ').slice(1, 3).join(' ')} />
         </LazyLoad>
@@ -247,30 +232,23 @@ const Product = ({ product }) => {
 const TabButton = ({ children, active, ...props }) => {
   const activeClassName = active ? 'text-red_r-11 underline underline-offset-4' : 'text-gray_r-11'
   return (
-    <button 
-      {...props}
-      type="button" 
-      className={`font-medium pb-1 ${activeClassName}`}
-    >
-      { children }
+    <button {...props} type='button' className={`font-medium pb-1 ${activeClassName}`}>
+      {children}
     </button>
   )
 }
 
 const TabContent = ({ children, active, className, ...props }) => (
-  <div 
-    {...props}
-    className={`${active ? 'block' : 'hidden'} ${className}`}
-  >
-    { children }
+  <div {...props} className={`${active ? 'block' : 'hidden'} ${className}`}>
+    {children}
   </div>
 )
 
 const SpecificationContent = ({ children, label }) => (
-  <div className="flex justify-between p-3">
-    <span className="text-gray_r-11">{ label }</span>
-    { children }
+  <div className='flex justify-between p-3'>
+    <span className='text-gray_r-11'>{label}</span>
+    {children}
   </div>
 )
 
-export default Product
\ No newline at end of file
+export default Product
-- 
cgit v1.2.3

