summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/components/elements/CountDown/CountDown.jsx19
-rw-r--r--src/core/components/elements/Footer/BasicFooter.jsx66
-rw-r--r--src/core/components/elements/Navbar/NavbarDesktop.jsx5
-rw-r--r--src/core/components/elements/Navbar/NavbarMobile.jsx2
-rw-r--r--src/core/components/elements/Sidebar/Sidebar.jsx5
-rw-r--r--src/lib/cart/components/Cart.jsx147
-rw-r--r--src/lib/category/components/Category.jsx6
-rw-r--r--src/lib/flashSale/components/FlashSale.jsx12
-rw-r--r--src/lib/form/components/KunjunganService.jsx66
-rw-r--r--src/lib/form/components/Merchant.jsx4
-rw-r--r--src/lib/form/components/PembayaranTempo.jsx2
-rw-r--r--src/lib/form/components/SuratDukungan.jsx2
-rw-r--r--src/lib/product/api/productSearchApi.js2
-rw-r--r--src/lib/product/components/ProductSearch.jsx8
-rw-r--r--src/pages/_document.jsx4
-rw-r--r--src/pages/api/shop/midtrans-payment.js4
-rw-r--r--src/pages/api/shop/spell.js5
-rw-r--r--src/pages/hubungi-kami.jsx (renamed from src/pages/faqs.jsx)6
-rw-r--r--src/pages/index.jsx8
-rw-r--r--src/pages/informasi-garansi.jsx12
-rw-r--r--src/pages/karir.jsx (renamed from src/pages/contact-us.jsx)6
-rw-r--r--src/pages/kebijakan-privasi.jsx12
-rw-r--r--src/pages/metode-pembayaran.jsx12
-rw-r--r--src/pages/metode-pengiriman.jsx12
-rw-r--r--src/pages/my/daftar-merchant.jsx (renamed from src/pages/my/merchant.jsx)6
-rw-r--r--src/pages/my/kunjungan-service.jsx1
-rw-r--r--src/pages/my/media-relations.jsx (renamed from src/pages/media-relations.jsx)1
-rw-r--r--src/pages/my/pembayaran-tempo.jsx2
-rw-r--r--src/pages/my/surat-dukungan.jsx1
-rw-r--r--src/pages/panduan-belanja.jsx12
-rw-r--r--src/pages/panduan-pick-up-service.jsx12
-rw-r--r--src/pages/panduan-quotation.jsx12
-rw-r--r--src/pages/pelanggan-kami.jsx12
-rw-r--r--src/pages/pengembalian-barang-dana.jsx12
-rw-r--r--src/pages/shop/category/[slug].jsx5
-rw-r--r--src/pages/shop/product/[slug].jsx12
-rw-r--r--src/pages/syarat-ketentuan.jsx12
-rw-r--r--src/pages/tentang-kami.jsx (renamed from src/pages/about-us.jsx)2
38 files changed, 346 insertions, 183 deletions
diff --git a/src/core/components/elements/CountDown/CountDown.jsx b/src/core/components/elements/CountDown/CountDown.jsx
index 877f7998..91a1f68e 100644
--- a/src/core/components/elements/CountDown/CountDown.jsx
+++ b/src/core/components/elements/CountDown/CountDown.jsx
@@ -15,7 +15,8 @@ const CountDown = ({ initialTime }) => {
useEffect(() => {
const timer = setInterval(() => {
- const totalSeconds = timeLeft.day * 86400 + timeLeft.hour * 3600 + timeLeft.minute * 60 + timeLeft.second
+ const totalSeconds =
+ timeLeft.day * 86400 + timeLeft.hour * 3600 + timeLeft.minute * 60 + timeLeft.second
const secondsLeft = totalSeconds - 1
if (secondsLeft < 0) {
clearInterval(timer)
@@ -33,19 +34,27 @@ const CountDown = ({ initialTime }) => {
return (
<div className='flex gap-x-2.5 w-fit'>
<div className='flex flex-col items-center'>
- <span className='bg-red-600 text-white font-semibold w-10 h-10 flex items-center justify-center rounded'>{timeLeft.day.toString().padStart(2, '0')}</span>
+ <span className='bg-red-600 text-white font-semibold w-10 h-10 flex items-center justify-center rounded'>
+ {timeLeft.day.toString().padStart(2, '0')}
+ </span>
<span className='text-caption-1 text-gray-700 mt-1'>Hari</span>
</div>
<div className='flex flex-col items-center'>
- <span className='bg-red-600 text-white font-semibold w-10 h-10 flex items-center justify-center rounded'>{timeLeft.hour.toString().padStart(2, '0')}</span>
+ <span className='bg-red-600 text-white font-semibold w-10 h-10 flex items-center justify-center rounded'>
+ {timeLeft.hour.toString().padStart(2, '0')}
+ </span>
<span className='text-caption-1 text-gray-700 mt-1'>Jam</span>
</div>
<div className='flex flex-col items-center'>
- <span className='bg-red-600 text-white font-semibold w-10 h-10 flex items-center justify-center rounded'>{timeLeft.minute.toString().padStart(2, '0')}</span>
+ <span className='bg-red-600 text-white font-semibold w-10 h-10 flex items-center justify-center rounded'>
+ {timeLeft.minute.toString().padStart(2, '0')}
+ </span>
<span className='text-caption-1 text-gray-700 mt-1'>Menit</span>
</div>
<div className='flex flex-col items-center'>
- <span className='bg-red-600 text-white font-semibold w-10 h-10 flex items-center justify-center rounded'>{timeLeft.second.toString().padStart(2, '0')}</span>
+ <span className='bg-red-600 text-white font-semibold w-10 h-10 flex items-center justify-center rounded'>
+ {timeLeft.second.toString().padStart(2, '0')}
+ </span>
<span className='text-caption-1 text-gray-700 mt-1'>Detik</span>
</div>
</div>
diff --git a/src/core/components/elements/Footer/BasicFooter.jsx b/src/core/components/elements/Footer/BasicFooter.jsx
index eecd7fee..325d7d7b 100644
--- a/src/core/components/elements/Footer/BasicFooter.jsx
+++ b/src/core/components/elements/Footer/BasicFooter.jsx
@@ -22,6 +22,7 @@ const BasicFooter = () => {
</div>
<OfficeLocation />
+ <AboutUs />
{/* <WarehouseLocation /> */}
<InformationCenter />
<OpenHours />
@@ -29,7 +30,7 @@ const BasicFooter = () => {
</div>
<div className='w-1/2 flex flex-col gap-y-4 pl-1.5'>
- <AboutUs />
+ <Form />
<CustomerGuide />
<Payments />
</div>
@@ -49,6 +50,7 @@ const BasicFooter = () => {
<InformationCenter />
</div>
<CustomerGuide />
+ <Form />
<AboutUs />
<div className='w-3/12'>
<div className='grid grid-cols-1 gap-y-4'>
@@ -99,31 +101,22 @@ const AboutUs = () => (
<div className={`${headerClassName} mb-3`}>Tentang Kami</div>
<ul className='flex flex-col gap-y-2'>
<li>
- <InternalItemLink href='/about-us'>Company Profile</InternalItemLink>
- </li>
- <li>
- <InternalItemLink href='/'>Karir</InternalItemLink>
- </li>
- <li>
- <InternalItemLink href='/'>Pelanggan Kami</InternalItemLink>
+ <InternalItemLink href='/tentang-kami'>Company Profile</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Menjadi Supplier</InternalItemLink>
+ <InternalItemLink href='/pelanggan-kami'>Pelanggan Kami</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Garansi dan Pengembalian</InternalItemLink>
+ <InternalItemLink href='/hubungi-kami'>Hubungi Kami</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Metode Pembayaran</InternalItemLink>
+ <InternalItemLink href='/karir'>Karir</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Metode Pengiriman</InternalItemLink>
+ <InternalItemLink href='/syarat-ketentuan'>Syarat & Ketentuan</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Testimonial</InternalItemLink>
- </li>
- <li>
- <InternalItemLink href='/'>Kebijakan Privacy</InternalItemLink>
+ <InternalItemLink href='/kebijakan-privasi'>Kebijakan Privasi</InternalItemLink>
</li>
</ul>
</div>
@@ -131,34 +124,53 @@ const AboutUs = () => (
const CustomerGuide = () => (
<div>
- <div className={`${headerClassName} mb-3`}>Panduan Pelanggan</div>
+ <div className={`${headerClassName} mb-3`}>Bantuan & Panduan</div>
<ul className='flex flex-col gap-y-2'>
<li>
- <InternalItemLink href='/'>Panduan Belanja</InternalItemLink>
+ <InternalItemLink href='/metode-pembayaran'>Metode Pembayaran</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>F.A.Q</InternalItemLink>
+ <InternalItemLink href='/metode-pengiriman'>Metode Pengiriman</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Kebijakan Privasi</InternalItemLink>
+ <InternalItemLink href='/panduan-belanja'>Panduan Belanja</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Pengajuan Tempo</InternalItemLink>
+ <InternalItemLink href='/panduan-quotation'>Panduan Quotation</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Garansi Produk</InternalItemLink>
+ <InternalItemLink href='/pengembalian-barang-dana'>
+ Pengembalian Barang & Dana
+ </InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Online Quotation</InternalItemLink>
+ <InternalItemLink href='/informasi-garansi'>Informasi Garansi</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Pengiriman</InternalItemLink>
+ <InternalItemLink href='/panduan-pick-up-service'>Panduan Pick Up Service</InternalItemLink>
+ </li>
+ </ul>
+ </div>
+)
+
+const Form = () => (
+ <div>
+ <div className={`${headerClassName} mb-3`}>Formulir</div>
+ <ul className='flex flex-col gap-y-2'>
+ <li>
+ <InternalItemLink href='/my/kunjungan-sales'>Kunjungan Sales</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Pembayaran</InternalItemLink>
+ <InternalItemLink href='/my/kunjungan-service'>Kunjungan Service</InternalItemLink>
</li>
<li>
- <InternalItemLink href='/'>Syarat & Ketentuan</InternalItemLink>
+ <InternalItemLink href='/my/pembayaran-tempo'>Pembayaran Tempo</InternalItemLink>
+ </li>
+ <li>
+ <InternalItemLink href='/my/surat-dukungan'>Surat Dukungan</InternalItemLink>
+ </li>
+ <li>
+ <InternalItemLink href='/my/daftar-merchant'>Daftar Merchant</InternalItemLink>
</li>
</ul>
</div>
@@ -205,7 +217,7 @@ const OpenHours = () => (
const SocialMedias = () => (
<div>
<div className={headerClassName + 'block md:hidden'}>Temukan Kami</div>
- <div className='flex flex-wrap gap-2'>
+ <div className='flex flex-wrap gap-2 mt-2'>
<NextImage src='/images/socials/Whatsapp.png' alt='Whatsapp Logo' width={24} height={24} />
<NextImage src='/images/socials/Facebook.png' alt='Facebook Logo' width={24} height={24} />
<NextImage src='/images/socials/Twitter.png' alt='Twitter Logo' width={24} height={24} />
diff --git a/src/core/components/elements/Navbar/NavbarDesktop.jsx b/src/core/components/elements/Navbar/NavbarDesktop.jsx
index aab43e26..43407fab 100644
--- a/src/core/components/elements/Navbar/NavbarDesktop.jsx
+++ b/src/core/components/elements/Navbar/NavbarDesktop.jsx
@@ -42,16 +42,13 @@ const NavbarDesktop = () => {
<TopBanner />
<div className='py-3 bg-warning-400' id='desktop-nav-top'>
<div className='container mx-auto flex justify-between'>
- <Link href='/about-us' className='!text-gray_r-12'>
+ <Link href='/tentang-kami' className='!text-gray_r-12'>
Tentang Indoteknik.com
</Link>
<div className='flex gap-x-6'>
<Link href='/my/pembayaran-tempo' className='!text-gray_r-12'>
Pembayaran Tempo
</Link>
- <Link href='/faqs' className='!text-gray_r-12'>
- F.A.Q
- </Link>
<Link href='/' className='!text-gray_r-12'>
Fitur Layanan
</Link>
diff --git a/src/core/components/elements/Navbar/NavbarMobile.jsx b/src/core/components/elements/Navbar/NavbarMobile.jsx
index 072ed572..1fd7658e 100644
--- a/src/core/components/elements/Navbar/NavbarMobile.jsx
+++ b/src/core/components/elements/Navbar/NavbarMobile.jsx
@@ -31,7 +31,7 @@ const NavbarMobile = () => {
return (
<MobileView>
- <TopBanner/>
+ <TopBanner />
<nav className='px-4 py-2 pb-3 sticky top-0 z-50 bg-white shadow'>
<div className='flex justify-between items-center mb-2'>
<Link href='/'>
diff --git a/src/core/components/elements/Sidebar/Sidebar.jsx b/src/core/components/elements/Sidebar/Sidebar.jsx
index c8fd8bab..7ea8f7c4 100644
--- a/src/core/components/elements/Sidebar/Sidebar.jsx
+++ b/src/core/components/elements/Sidebar/Sidebar.jsx
@@ -126,12 +126,9 @@ const Sidebar = ({ active, close }) => {
<SidebarLink className={itemClassName} href='/video'>
Indoteknik TV
</SidebarLink>
- <SidebarLink className={itemClassName} href='/about-us'>
+ <SidebarLink className={itemClassName} href='/tentang-kami'>
Tentang Indoteknik
</SidebarLink>
- <SidebarLink className={itemClassName} href='/faqs'>
- F.A.Q
- </SidebarLink>
<SidebarLink className={itemClassName} href='/contact-us'>
Hubungi Kami
</SidebarLink>
diff --git a/src/lib/cart/components/Cart.jsx b/src/lib/cart/components/Cart.jsx
index b0de5168..3a61e9be 100644
--- a/src/lib/cart/components/Cart.jsx
+++ b/src/lib/cart/components/Cart.jsx
@@ -329,91 +329,92 @@ const Cart = () => {
<td colSpan={6}>Keranjang belanja anda masih kosong</td>
</tr>
)}
- {products && products?.map((product) => (
- <tr key={product.id}>
- <td>
- <input
- type='checkbox'
- onClick={() => toggleSelected(product.id)}
- checked={product?.selected}
- className='accent-danger-500 w-4'
- />
- </td>
- <td className='flex'>
- <Link
- href={createSlug(
- '/shop/product/',
- product?.parent.name,
- product?.parent.id
- )}
- className='w-[20%] flex-shrink-0'
- >
- <Image
- src={product?.parent?.image}
- alt={product?.name}
- className='object-contain object-center border border-gray_r-6 h-28 w-full rounded-md'
+ {products &&
+ products?.map((product) => (
+ <tr key={product.id}>
+ <td>
+ <input
+ type='checkbox'
+ onClick={() => toggleSelected(product.id)}
+ checked={product?.selected}
+ className='accent-danger-500 w-4'
/>
- </Link>
- <div className='px-2 text-left'>
+ </td>
+ <td className='flex'>
<Link
href={createSlug(
'/shop/product/',
product?.parent.name,
product?.parent.id
)}
- className='line-clamp-2 leading-6 !text-gray_r-12 font-normal'
+ className='w-[20%] flex-shrink-0'
>
- {product?.parent?.name}
+ <Image
+ src={product?.parent?.image}
+ alt={product?.name}
+ className='object-contain object-center border border-gray_r-6 h-28 w-full rounded-md'
+ />
</Link>
- <div className='text-gray_r-11 mt-2'>
- {product?.code}{' '}
- {product?.attributes.length > 0
- ? `| ${product?.attributes.join(', ')}`
- : ''}
- </div>
- </div>
- </td>
- <td>
- <input
- className='form-input w-16 py-2 text-center bg-gray_r-1'
- type='number'
- value={product?.quantity}
- onChange={(e) => updateQuantity(e.target.value, product?.id)}
- onBlur={(e) => updateQuantity(e.target.value, product?.id, 'BLUR')}
- />
- </td>
- <td>
- {product?.price?.discountPercentage > 0 && (
- <div className='flex gap-x-1 items-center justify-center mt-3'>
- <div className='text-gray_r-11 line-through text-caption-1'>
- {currencyFormat(product?.price?.price)}
+ <div className='px-2 text-left'>
+ <Link
+ href={createSlug(
+ '/shop/product/',
+ product?.parent.name,
+ product?.parent.id
+ )}
+ className='line-clamp-2 leading-6 !text-gray_r-12 font-normal'
+ >
+ {product?.parent?.name}
+ </Link>
+ <div className='text-gray_r-11 mt-2'>
+ {product?.code}{' '}
+ {product?.attributes.length > 0
+ ? `| ${product?.attributes.join(', ')}`
+ : ''}
</div>
- <div className='badge-solid-red'>
- {product?.price?.discountPercentage}%
+ </div>
+ </td>
+ <td>
+ <input
+ className='form-input w-16 py-2 text-center bg-gray_r-1'
+ type='number'
+ value={product?.quantity}
+ onChange={(e) => updateQuantity(e.target.value, product?.id)}
+ onBlur={(e) => updateQuantity(e.target.value, product?.id, 'BLUR')}
+ />
+ </td>
+ <td>
+ {product?.price?.discountPercentage > 0 && (
+ <div className='flex gap-x-1 items-center justify-center mt-3'>
+ <div className='text-gray_r-11 line-through text-caption-1'>
+ {currencyFormat(product?.price?.price)}
+ </div>
+ <div className='badge-solid-red'>
+ {product?.price?.discountPercentage}%
+ </div>
</div>
+ )}
+ <div className='font-normal mt-1'>
+ {currencyFormat(product?.price?.priceDiscount)}
</div>
- )}
- <div className='font-normal mt-1'>
- {currencyFormat(product?.price?.priceDiscount)}
- </div>
- </td>
- <td>
- <div className='text-danger-500 font-medium'>
- {currencyFormat(product?.price?.priceDiscount * product?.quantity)}
- </div>
- </td>
- <td>
- <div className='flex justify-center items-center h-full'>
- <button
- className='btn-red p-1 ml-1'
- onClick={() => setDeleteConfirmation(product)}
- >
- <TrashIcon className='w-4' />
- </button>
- </div>
- </td>
- </tr>
- ))}
+ </td>
+ <td>
+ <div className='text-danger-500 font-medium'>
+ {currencyFormat(product?.price?.priceDiscount * product?.quantity)}
+ </div>
+ </td>
+ <td>
+ <div className='flex justify-center items-center h-full'>
+ <button
+ className='btn-red p-1 ml-1'
+ onClick={() => setDeleteConfirmation(product)}
+ >
+ <TrashIcon className='w-4' />
+ </button>
+ </div>
+ </td>
+ </tr>
+ ))}
</tbody>
</table>
diff --git a/src/lib/category/components/Category.jsx b/src/lib/category/components/Category.jsx
index eddedd24..884a871f 100644
--- a/src/lib/category/components/Category.jsx
+++ b/src/lib/category/components/Category.jsx
@@ -51,7 +51,11 @@ const Category = () => {
<div className='flex flex-col gap-y-3'>
{child1Category.childs.map((child2Category) => (
<Link
- href={createSlug('/shop/category/', child2Category.name, child2Category.id)}
+ href={createSlug(
+ '/shop/category/',
+ child2Category.name,
+ child2Category.id
+ )}
className='category-mega-box__child-two'
key={child2Category.id}
>
diff --git a/src/lib/flashSale/components/FlashSale.jsx b/src/lib/flashSale/components/FlashSale.jsx
index f0f95c8b..e4a4a25c 100644
--- a/src/lib/flashSale/components/FlashSale.jsx
+++ b/src/lib/flashSale/components/FlashSale.jsx
@@ -27,8 +27,16 @@ const FlashSale = () => {
</div>
<div className='relative'>
- <Image src={flashSale.banner} alt={flashSale.name} className='w-full rounded mb-4 hidden sm:block' />
- <Image src={flashSale.bannerMobile} alt={flashSale.name} className='w-full rounded mb-4 block sm:hidden' />
+ <Image
+ src={flashSale.banner}
+ alt={flashSale.name}
+ className='w-full rounded mb-4 hidden sm:block'
+ />
+ <Image
+ src={flashSale.bannerMobile}
+ alt={flashSale.name}
+ className='w-full rounded mb-4 block sm:hidden'
+ />
<FlashSaleProduct flashSaleId={flashSale.pricelistId} />
</div>
</div>
diff --git a/src/lib/form/components/KunjunganService.jsx b/src/lib/form/components/KunjunganService.jsx
index 7797444d..076f6814 100644
--- a/src/lib/form/components/KunjunganService.jsx
+++ b/src/lib/form/components/KunjunganService.jsx
@@ -41,18 +41,32 @@ const CreateKunjunganService = () => {
}
const data = {
...values,
- name : 'Pengajuan Kunjungan Service - ' + values.company,
- contact_name : values.cp,
- email_from : values.email,
- phone : values.mobile,
- description : "\r\n Nama Perusahaan : " + values.company + " \r\n Alamat : " + values.address + " \r\n Propinsi : " + values.city + " \r\n Telepon: " + values.phone + " \r\n Handphone : " + values.mobile +" \r\n Email : " + values.email + " \r\n Keterangan : " + values.description ,
+ name: 'Pengajuan Kunjungan Service - ' + values.company,
+ contact_name: values.cp,
+ email_from: values.email,
+ phone: values.mobile,
+ description:
+ '\r\n Nama Perusahaan : ' +
+ values.company +
+ ' \r\n Alamat : ' +
+ values.address +
+ ' \r\n Propinsi : ' +
+ values.city +
+ ' \r\n Telepon: ' +
+ values.phone +
+ ' \r\n Handphone : ' +
+ values.mobile +
+ ' \r\n Email : ' +
+ values.email +
+ ' \r\n Keterangan : ' +
+ values.description
}
const create_leads = await createLeadApi({ data })
if (create_leads) {
toast.success('Berhasil menambahkan alamat')
reset()
- recaptchaRef.current.reset()
+ recaptchaRef.current.reset()
}
}
return (
@@ -125,9 +139,7 @@ const CreateKunjunganService = () => {
type='text'
className='form-input'
/>
- <div className='text-caption-2 text-danger-500 mt-1'>
- {errors.cp?.message}
- </div>
+ <div className='text-caption-2 text-danger-500 mt-1'>{errors.cp?.message}</div>
</div>
</div>
<div className='grid grid-cols-1 md:grid-cols-2 gap-4 mt-4'>
@@ -156,7 +168,9 @@ const CreateKunjunganService = () => {
</div>
<div className='grid grid-cols-1 md:grid-cols-2 gap-4 mt-4'>
<div>
- <label className='form-label mb-2'>Sebutkan: Merek, Tipe, Permasalahan, Service, Perawatan</label>
+ <label className='form-label mb-2'>
+ Sebutkan: Merek, Tipe, Permasalahan, Service, Perawatan
+ </label>
<textarea {...register('description')} type='text' className='form-input' />
<div className='text-caption-2 text-danger-500 mt-1'>
{errors.description?.message}
@@ -181,24 +195,24 @@ const CreateKunjunganService = () => {
)
}
const validationSchema = Yup.object().shape({
- company: Yup.string().required('Harus di-isi'),
- email: Yup.string().email('Format harus seperti contoh@email.com').required('Harus di-isi'),
- phone: Yup.string().required('Harus di-isi'),
- city: Yup.string().required('Harus di-isi'),
- cp: Yup.string().required('Harus di-isi'),
- mobile: Yup.string().required('Harus di-isi'),
- email: Yup.string().required('Harus di-isi'),
- address: Yup.string().required('Harus di-isi')
+ company: Yup.string().required('Harus di-isi'),
+ email: Yup.string().email('Format harus seperti contoh@email.com').required('Harus di-isi'),
+ phone: Yup.string().required('Harus di-isi'),
+ city: Yup.string().required('Harus di-isi'),
+ cp: Yup.string().required('Harus di-isi'),
+ mobile: Yup.string().required('Harus di-isi'),
+ email: Yup.string().required('Harus di-isi'),
+ address: Yup.string().required('Harus di-isi')
})
const defaultValues = {
- company:'',
- email: '',
- phone: '',
- city: '',
- cp: '',
- mobile: '',
- email: '',
- address: ''
+ company: '',
+ email: '',
+ phone: '',
+ city: '',
+ cp: '',
+ mobile: '',
+ email: '',
+ address: ''
}
export default CreateKunjunganService
diff --git a/src/lib/form/components/Merchant.jsx b/src/lib/form/components/Merchant.jsx
index beb50f50..75b4e132 100644
--- a/src/lib/form/components/Merchant.jsx
+++ b/src/lib/form/components/Merchant.jsx
@@ -168,7 +168,9 @@ const CreateMerchant = () => {
control={control}
render={(props) => <HookFormSelect {...props} options={company_unit} />}
/>
- <div className='text-caption-2 text-danger-500 mt-1'>{errors.company_unit?.message}</div>
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errors.company_unit?.message}
+ </div>
</div>
</div>
<div className='grid grid-cols-1 md:grid-cols-2 gap-4 mt-4'>
diff --git a/src/lib/form/components/PembayaranTempo.jsx b/src/lib/form/components/PembayaranTempo.jsx
index 5f32753e..ffdb0961 100644
--- a/src/lib/form/components/PembayaranTempo.jsx
+++ b/src/lib/form/components/PembayaranTempo.jsx
@@ -52,7 +52,7 @@ const PembayaranTempo = () => {
return (
<div className='container mx-auto p-4 md:p-0 my-0 md:my-10'>
<h1 className='text-h-sm md:text-title-sm font-semibold mb-6'>Pembayaran Tempo</h1>
-
+
<div className='w-full grid grid-cols-1 md:grid-cols-2'>
<form onSubmit={handleSubmit(onSubmitHandler)} className='grid grid-cols-1 gap-y-6'>
<div>
diff --git a/src/lib/form/components/SuratDukungan.jsx b/src/lib/form/components/SuratDukungan.jsx
index 3d90c2a9..0eab84a4 100644
--- a/src/lib/form/components/SuratDukungan.jsx
+++ b/src/lib/form/components/SuratDukungan.jsx
@@ -215,7 +215,7 @@ const defaultValues = {
npwp: '',
email: '',
address: '',
- address2: '',
+ address2: ''
}
export default CreateSuratDukungan
diff --git a/src/lib/product/api/productSearchApi.js b/src/lib/product/api/productSearchApi.js
index 8ff8e57d..1626b7b7 100644
--- a/src/lib/product/api/productSearchApi.js
+++ b/src/lib/product/api/productSearchApi.js
@@ -1,7 +1,7 @@
import _ from 'lodash-contrib'
import axios from 'axios'
-const productSearchApi = async ({ query, operation = 'OR' }) => {
+const productSearchApi = async ({ query, operation = 'AND' }) => {
const dataProductSearch = await axios(
`${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/search?${query}&operation=${operation}`
)
diff --git a/src/lib/product/components/ProductSearch.jsx b/src/lib/product/components/ProductSearch.jsx
index 76dba005..2233925d 100644
--- a/src/lib/product/components/ProductSearch.jsx
+++ b/src/lib/product/components/ProductSearch.jsx
@@ -137,7 +137,9 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
</>
)}
</>
- ) : SpellingComponent}
+ ) : (
+ SpellingComponent
+ )}
</div>
{productFound > 0 && (
@@ -205,7 +207,9 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
</>
)}
</>
- ) : SpellingComponent}
+ ) : (
+ SpellingComponent
+ )}
</div>
<div className='justify-end flex '>
<div className='ml-3'>
diff --git a/src/pages/_document.jsx b/src/pages/_document.jsx
index 71daaef2..29d261ea 100644
--- a/src/pages/_document.jsx
+++ b/src/pages/_document.jsx
@@ -5,8 +5,8 @@ export default function MyDocument() {
return (
<Html>
<Head>
- <link rel="icon" href="/favicon.ico" />
-
+ <link rel='icon' href='/favicon.ico' />
+
<meta name='facebook-domain-verification' content='328wmjs7hcnz74rwsqzxvq50rmbtm2' />
<Script
async
diff --git a/src/pages/api/shop/midtrans-payment.js b/src/pages/api/shop/midtrans-payment.js
index f7f29c7c..12aaa51f 100644
--- a/src/pages/api/shop/midtrans-payment.js
+++ b/src/pages/api/shop/midtrans-payment.js
@@ -22,7 +22,7 @@ export default async function handler(req, res) {
{},
{ Token: auth.token }
)
-
+
if (!transaction?.id) {
return res.status(400).json({ error: 'No Data' })
}
@@ -57,7 +57,7 @@ export default async function handler(req, res) {
customer_details: {
first_name: transaction.address.customer.name,
email: transaction.address.customer.email || '',
- phone: transaction.address.customer.phone || '',
+ phone: transaction.address.customer.phone || ''
}
}
diff --git a/src/pages/api/shop/spell.js b/src/pages/api/shop/spell.js
index 634adb50..4c01765c 100644
--- a/src/pages/api/shop/spell.js
+++ b/src/pages/api/shop/spell.js
@@ -4,10 +4,9 @@ export default async function handler(req, res) {
const { q = '' } = req.query
let result = await axios(
- process.env.SOLR_HOST +
- `/solr/product/spell?indent=true&q.op=AND&q=${q}`
+ process.env.SOLR_HOST + `/solr/product/spell?indent=true&q.op=AND&q=${q}`
)
-
+
try {
res.status(200).json(result.data)
} catch (error) {
diff --git a/src/pages/faqs.jsx b/src/pages/hubungi-kami.jsx
index e8ffb4e3..7aba9cba 100644
--- a/src/pages/faqs.jsx
+++ b/src/pages/hubungi-kami.jsx
@@ -2,11 +2,11 @@ import Seo from '@/core/components/Seo'
import BasicLayout from '@/core/components/layouts/BasicLayout'
import PageContent from '@/lib/content/components/PageContent'
-export default function ContactUs() {
+export default function HubungiKami() {
return (
<BasicLayout>
- <Seo title='FAQS Indoteknik.com' />
- <PageContent path='/faqs' />
+ <Seo title='Hubungi Kami - Indoteknik.com' />
+ <PageContent path='/hubungi-kami' />
</BasicLayout>
)
}
diff --git a/src/pages/index.jsx b/src/pages/index.jsx
index a5d9fd2d..9c434660 100644
--- a/src/pages/index.jsx
+++ b/src/pages/index.jsx
@@ -60,7 +60,13 @@ export default function Home() {
<div className='flex h-[360px]' ref={wrapperRef} onLoad={handleOnLoad}>
<div className='w-2/12'>
{secondHeroBanner.isFetched && (
- <Image src={secondHeroBanner.data[0].image} width={512} height={1024} alt={secondHeroBanner.data[0].name} className='object-cover object-center h-full' />
+ <Image
+ src={secondHeroBanner.data[0].image}
+ width={512}
+ height={1024}
+ alt={secondHeroBanner.data[0].name}
+ className='object-cover object-center h-full'
+ />
)}
</div>
<div className='w-7/12 px-1' ref={bannerRef}>
diff --git a/src/pages/informasi-garansi.jsx b/src/pages/informasi-garansi.jsx
new file mode 100644
index 00000000..191c2b42
--- /dev/null
+++ b/src/pages/informasi-garansi.jsx
@@ -0,0 +1,12 @@
+import Seo from '@/core/components/Seo'
+import BasicLayout from '@/core/components/layouts/BasicLayout'
+import PageContent from '@/lib/content/components/PageContent'
+
+export default function InformasiGaransi() {
+ return (
+ <BasicLayout>
+ <Seo title='Informasi Garansi - Indoteknik.com' />
+ <PageContent path='/informasi-garansi' />
+ </BasicLayout>
+ )
+}
diff --git a/src/pages/contact-us.jsx b/src/pages/karir.jsx
index adbf9439..297c3015 100644
--- a/src/pages/contact-us.jsx
+++ b/src/pages/karir.jsx
@@ -2,11 +2,11 @@ import Seo from '@/core/components/Seo'
import BasicLayout from '@/core/components/layouts/BasicLayout'
import PageContent from '@/lib/content/components/PageContent'
-export default function ContactUs() {
+export default function KebijakanPrivasi() {
return (
<BasicLayout>
- <Seo title='Hubungi Indoteknik.com' />
- <PageContent path='/contact-us' />
+ <Seo title='Karir - Indoteknik.com' />
+ <PageContent path='/karir' />
</BasicLayout>
)
}
diff --git a/src/pages/kebijakan-privasi.jsx b/src/pages/kebijakan-privasi.jsx
new file mode 100644
index 00000000..10213f21
--- /dev/null
+++ b/src/pages/kebijakan-privasi.jsx
@@ -0,0 +1,12 @@
+import Seo from '@/core/components/Seo'
+import BasicLayout from '@/core/components/layouts/BasicLayout'
+import PageContent from '@/lib/content/components/PageContent'
+
+export default function KebijakanPrivasi() {
+ return (
+ <BasicLayout>
+ <Seo title='Kebijakan Privasi - Indoteknik.com' />
+ <PageContent path='/kebijakan-privasi' />
+ </BasicLayout>
+ )
+}
diff --git a/src/pages/metode-pembayaran.jsx b/src/pages/metode-pembayaran.jsx
new file mode 100644
index 00000000..8e0394bf
--- /dev/null
+++ b/src/pages/metode-pembayaran.jsx
@@ -0,0 +1,12 @@
+import Seo from '@/core/components/Seo'
+import BasicLayout from '@/core/components/layouts/BasicLayout'
+import PageContent from '@/lib/content/components/PageContent'
+
+export default function MetodePembayaran() {
+ return (
+ <BasicLayout>
+ <Seo title='Metode Pembayaran - Indoteknik.com' />
+ <PageContent path='/metode-pembayaran' />
+ </BasicLayout>
+ )
+}
diff --git a/src/pages/metode-pengiriman.jsx b/src/pages/metode-pengiriman.jsx
new file mode 100644
index 00000000..b6555cde
--- /dev/null
+++ b/src/pages/metode-pengiriman.jsx
@@ -0,0 +1,12 @@
+import Seo from '@/core/components/Seo'
+import BasicLayout from '@/core/components/layouts/BasicLayout'
+import PageContent from '@/lib/content/components/PageContent'
+
+export default function MetodePengiriman() {
+ return (
+ <BasicLayout>
+ <Seo title='Metode Pengiriman - Indoteknik.com' />
+ <PageContent path='/metode-pengiriman' />
+ </BasicLayout>
+ )
+}
diff --git a/src/pages/my/merchant.jsx b/src/pages/my/daftar-merchant.jsx
index a6f71c8b..e1fa9bcb 100644
--- a/src/pages/my/merchant.jsx
+++ b/src/pages/my/daftar-merchant.jsx
@@ -1,13 +1,11 @@
import Seo from '@/core/components/Seo'
import BasicLayout from '@/core/components/layouts/BasicLayout'
import CreateMerchant from '@/lib/form/components/Merchant'
-import CreateSuratDukungan from '@/lib/form/components/SuratDukungan'
-export default function merchant() {
-
+export default function DaftarMerchant() {
return (
<>
- <Seo title='Merchant - Indoteknik.com' />
+ <Seo title='Daftar Merchant - Indoteknik.com' />
<BasicLayout>
<CreateMerchant></CreateMerchant>
diff --git a/src/pages/my/kunjungan-service.jsx b/src/pages/my/kunjungan-service.jsx
index 28697804..37de5a0b 100644
--- a/src/pages/my/kunjungan-service.jsx
+++ b/src/pages/my/kunjungan-service.jsx
@@ -3,7 +3,6 @@ import BasicLayout from '@/core/components/layouts/BasicLayout'
import CreateKunjunganService from '@/lib/form/components/KunjunganService'
export default function kunjungan_service() {
-
return (
<>
<Seo title='Kunjungan Service - Indoteknik.com' />
diff --git a/src/pages/media-relations.jsx b/src/pages/my/media-relations.jsx
index afdb61ec..a965f39a 100644
--- a/src/pages/media-relations.jsx
+++ b/src/pages/my/media-relations.jsx
@@ -3,7 +3,6 @@ import BasicLayout from '@/core/components/layouts/BasicLayout'
import CreateMediaRelations from '@/lib/form/components/MediaRelations'
export default function media_relations() {
-
return (
<>
<Seo title='Media Relations - Indoteknik.com' />
diff --git a/src/pages/my/pembayaran-tempo.jsx b/src/pages/my/pembayaran-tempo.jsx
index 1e4fc80d..8947bdd9 100644
--- a/src/pages/my/pembayaran-tempo.jsx
+++ b/src/pages/my/pembayaran-tempo.jsx
@@ -2,7 +2,7 @@ import Seo from '@/core/components/Seo'
import BasicLayout from '@/core/components/layouts/BasicLayout'
import PembayaranTempo from '@/lib/form/components/PembayaranTempo'
-export default function pembayaran_tempo() {
+export default function pembayaranTempo() {
return (
<>
<Seo title='Pembayaran Tempo - Indoteknik.com' />
diff --git a/src/pages/my/surat-dukungan.jsx b/src/pages/my/surat-dukungan.jsx
index a19c60d6..8058f34d 100644
--- a/src/pages/my/surat-dukungan.jsx
+++ b/src/pages/my/surat-dukungan.jsx
@@ -4,7 +4,6 @@ import CreateKunjunganService from '@/lib/form/components/KunjunganService'
import CreateSuratDukungan from '@/lib/form/components/SuratDukungan'
export default function surat_dukungan() {
-
return (
<>
<Seo title='Surat Dukungan - Indoteknik.com' />
diff --git a/src/pages/panduan-belanja.jsx b/src/pages/panduan-belanja.jsx
new file mode 100644
index 00000000..a792bf10
--- /dev/null
+++ b/src/pages/panduan-belanja.jsx
@@ -0,0 +1,12 @@
+import Seo from '@/core/components/Seo'
+import BasicLayout from '@/core/components/layouts/BasicLayout'
+import PageContent from '@/lib/content/components/PageContent'
+
+export default function PanduanBelanja() {
+ return (
+ <BasicLayout>
+ <Seo title='Panduan Belanja - Indoteknik.com' />
+ <PageContent path='/panduan-belanja' />
+ </BasicLayout>
+ )
+}
diff --git a/src/pages/panduan-pick-up-service.jsx b/src/pages/panduan-pick-up-service.jsx
new file mode 100644
index 00000000..8bc925d1
--- /dev/null
+++ b/src/pages/panduan-pick-up-service.jsx
@@ -0,0 +1,12 @@
+import Seo from '@/core/components/Seo'
+import BasicLayout from '@/core/components/layouts/BasicLayout'
+import PageContent from '@/lib/content/components/PageContent'
+
+export default function PanduanPickUpService() {
+ return (
+ <BasicLayout>
+ <Seo title='Panduan Pick Up Service - Indoteknik.com' />
+ <PageContent path='/panduan-pick-up-service' />
+ </BasicLayout>
+ )
+}
diff --git a/src/pages/panduan-quotation.jsx b/src/pages/panduan-quotation.jsx
new file mode 100644
index 00000000..c67bfd84
--- /dev/null
+++ b/src/pages/panduan-quotation.jsx
@@ -0,0 +1,12 @@
+import Seo from '@/core/components/Seo'
+import BasicLayout from '@/core/components/layouts/BasicLayout'
+import PageContent from '@/lib/content/components/PageContent'
+
+export default function PanduanQuotation() {
+ return (
+ <BasicLayout>
+ <Seo title='Panduan Quotation - Indoteknik.com' />
+ <PageContent path='/panduan-quotation' />
+ </BasicLayout>
+ )
+}
diff --git a/src/pages/pelanggan-kami.jsx b/src/pages/pelanggan-kami.jsx
new file mode 100644
index 00000000..61a3ae03
--- /dev/null
+++ b/src/pages/pelanggan-kami.jsx
@@ -0,0 +1,12 @@
+import Seo from '@/core/components/Seo'
+import BasicLayout from '@/core/components/layouts/BasicLayout'
+import PageContent from '@/lib/content/components/PageContent'
+
+export default function PelangganKami() {
+ return (
+ <BasicLayout>
+ <Seo title='Pelanggan Kami - Indoteknik.com' />
+ <PageContent path='/pelanggan-kami' />
+ </BasicLayout>
+ )
+}
diff --git a/src/pages/pengembalian-barang-dana.jsx b/src/pages/pengembalian-barang-dana.jsx
new file mode 100644
index 00000000..fa4f9e05
--- /dev/null
+++ b/src/pages/pengembalian-barang-dana.jsx
@@ -0,0 +1,12 @@
+import Seo from '@/core/components/Seo'
+import BasicLayout from '@/core/components/layouts/BasicLayout'
+import PageContent from '@/lib/content/components/PageContent'
+
+export default function PengembalianBarangDana() {
+ return (
+ <BasicLayout>
+ <Seo title='Pengembalian Barang & Dana - Indoteknik.com' />
+ <PageContent path='/pengembalian-barang-dana' />
+ </BasicLayout>
+ )
+}
diff --git a/src/pages/shop/category/[slug].jsx b/src/pages/shop/category/[slug].jsx
index 2c5d9f3e..dbc17c06 100644
--- a/src/pages/shop/category/[slug].jsx
+++ b/src/pages/shop/category/[slug].jsx
@@ -30,10 +30,7 @@ export default function CategoryDetail() {
/>
{!_.isEmpty(router.query) && (
- <ProductSearch
- query={query}
- prefixUrl={`/shop/category/${slug}`}
- />
+ <ProductSearch query={query} prefixUrl={`/shop/category/${slug}`} />
)}
</BasicLayout>
)
diff --git a/src/pages/shop/product/[slug].jsx b/src/pages/shop/product/[slug].jsx
index 7ab0ef76..ed6c27d5 100644
--- a/src/pages/shop/product/[slug].jsx
+++ b/src/pages/shop/product/[slug].jsx
@@ -4,24 +4,22 @@ import { getIdFromSlug } from '@/core/utils/slug'
import productApi from '@/lib/product/api/productApi'
import dynamic from 'next/dynamic'
import { useRouter } from 'next/router'
-import { useEffect, useState } from 'react'
const BasicLayout = dynamic(() => import('@/core/components/layouts/BasicLayout'))
const Product = dynamic(() => import('@/lib/product/components/Product/Product'))
export async function getServerSideProps(context) {
const { slug } = context.query
-
+
let product = await productApi({ id: getIdFromSlug(slug) })
if (product?.length == 1) {
product = product[0]
const regexHtmlTags = /(<([^>]+)>)/gi
const regexHtmlTagsExceptP = /<\/?(?!p\b)[^>]*>/g
- if (product.description.replace(regexHtmlTags, ' ').trim() == '') {
- product.description = ''
- }
- product.description = product.description.replace(regexHtmlTagsExceptP, ' ')
- product.description = product.description.trim()
+ product.description = product.description
+ .replace(regexHtmlTagsExceptP, ' ')
+ .replace(regexHtmlTags, ' ')
+ .trim()
} else {
product = null
}
diff --git a/src/pages/syarat-ketentuan.jsx b/src/pages/syarat-ketentuan.jsx
new file mode 100644
index 00000000..3064489a
--- /dev/null
+++ b/src/pages/syarat-ketentuan.jsx
@@ -0,0 +1,12 @@
+import Seo from '@/core/components/Seo'
+import BasicLayout from '@/core/components/layouts/BasicLayout'
+import PageContent from '@/lib/content/components/PageContent'
+
+export default function SyaratKetentuan() {
+ return (
+ <BasicLayout>
+ <Seo title='Syarat & Ketentuan - Indoteknik.com' />
+ <PageContent path='/syarat-ketentuan' />
+ </BasicLayout>
+ )
+}
diff --git a/src/pages/about-us.jsx b/src/pages/tentang-kami.jsx
index c7e546df..d7029a50 100644
--- a/src/pages/about-us.jsx
+++ b/src/pages/tentang-kami.jsx
@@ -2,7 +2,7 @@ import Seo from '@/core/components/Seo'
import BasicLayout from '@/core/components/layouts/BasicLayout'
import IframeContent from '@/lib/iframe/components/IframeContent'
-export default function AboutUs() {
+export default function TentangKami() {
return (
<BasicLayout>
<Seo title='Tentang Indoteknik.com' />