diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-05-03 10:38:52 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-05-03 10:38:52 +0700 |
| commit | b4abdb00ef83aa824e8a05d5b75df48adb7b9629 (patch) | |
| tree | 86ce2454793fe31b54a87f151433cbf86dbed134 | |
| parent | 31816dc3a6cb62e1480524c8f0065a7835fefdcd (diff) | |
semi dynamic page
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' /> |
