summaryrefslogtreecommitdiff
path: root/src-migrate/pages
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2024-01-13 10:35:22 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2024-01-13 10:35:22 +0700
commitf62b2345f463695ef0f8f79830cd76b6e0332821 (patch)
treec06ff12a8312e3a02b0203f588db0f4da044c911 /src-migrate/pages
parentee0b5893ac039ab05fe8247647364a923d707da3 (diff)
Refactor src migrate folder
Diffstat (limited to 'src-migrate/pages')
-rw-r--r--src-migrate/pages/_app.tsx4
-rw-r--r--src-migrate/pages/api/product-variant/[id].tsx2
-rw-r--r--src-migrate/pages/api/product-variant/[id]/promotion/[category].tsx2
-rw-r--r--src-migrate/pages/api/product-variant/[id]/promotion/highlight.tsx2
-rw-r--r--src-migrate/pages/api/promotion-program/[id].tsx3
-rw-r--r--src-migrate/pages/register.tsx2
-rw-r--r--src-migrate/pages/shop/cart/cart.module.css (renamed from src-migrate/pages/shop/cart.module.css)0
-rw-r--r--src-migrate/pages/shop/cart/index.tsx (renamed from src-migrate/pages/shop/cart.tsx)4
-rw-r--r--src-migrate/pages/shop/product/[slug].tsx73
-rw-r--r--src-migrate/pages/shop/product/product.module.css0
10 files changed, 83 insertions, 9 deletions
diff --git a/src-migrate/pages/_app.tsx b/src-migrate/pages/_app.tsx
index 2dc82559..36640c04 100644
--- a/src-migrate/pages/_app.tsx
+++ b/src-migrate/pages/_app.tsx
@@ -1,5 +1,5 @@
-import '~/common/styles/fonts/Inter/inter.css'
-import '~/common/styles/globals.css'
+import '~/styles/fonts/Inter/inter.css'
+import '~/styles/globals.css'
import type { AppProps } from "next/app"
export default function MyApp({ Component, pageProps }: AppProps) {
diff --git a/src-migrate/pages/api/product-variant/[id].tsx b/src-migrate/pages/api/product-variant/[id].tsx
index b3bd4096..c25c10ac 100644
--- a/src-migrate/pages/api/product-variant/[id].tsx
+++ b/src-migrate/pages/api/product-variant/[id].tsx
@@ -1,5 +1,5 @@
import { NextApiRequest, NextApiResponse } from "next";
-import { SolrResponse } from "~/common/types/solr";
+import { SolrResponse } from "~/types/solr";
const SOLR_HOST = process.env.SOLR_HOST as string
diff --git a/src-migrate/pages/api/product-variant/[id]/promotion/[category].tsx b/src-migrate/pages/api/product-variant/[id]/promotion/[category].tsx
index 745f9944..50671afd 100644
--- a/src-migrate/pages/api/product-variant/[id]/promotion/[category].tsx
+++ b/src-migrate/pages/api/product-variant/[id]/promotion/[category].tsx
@@ -1,5 +1,5 @@
import { NextApiRequest, NextApiResponse } from "next";
-import { SolrResponse } from "~/common/types/solr";
+import { SolrResponse } from "~/types/solr";
const SOLR_HOST = process.env.SOLR_HOST as string
diff --git a/src-migrate/pages/api/product-variant/[id]/promotion/highlight.tsx b/src-migrate/pages/api/product-variant/[id]/promotion/highlight.tsx
index 0fe8fd1b..8153f346 100644
--- a/src-migrate/pages/api/product-variant/[id]/promotion/highlight.tsx
+++ b/src-migrate/pages/api/product-variant/[id]/promotion/highlight.tsx
@@ -1,5 +1,5 @@
import { NextApiRequest, NextApiResponse } from "next";
-import { SolrResponse } from "~/common/types/solr";
+import { SolrResponse } from "~/types/solr";
const SOLR_HOST = process.env.SOLR_HOST as string
diff --git a/src-migrate/pages/api/promotion-program/[id].tsx b/src-migrate/pages/api/promotion-program/[id].tsx
index ba716e85..c509b802 100644
--- a/src-migrate/pages/api/promotion-program/[id].tsx
+++ b/src-migrate/pages/api/promotion-program/[id].tsx
@@ -1,6 +1,5 @@
import { NextApiRequest, NextApiResponse } from "next";
-import { SolrResponse } from "~/common/types/solr";
-import moment from 'moment'
+import { SolrResponse } from "~/types/solr";
const SOLR_HOST = process.env.SOLR_HOST as string
diff --git a/src-migrate/pages/register.tsx b/src-migrate/pages/register.tsx
index 1246c6f5..136eaa3b 100644
--- a/src-migrate/pages/register.tsx
+++ b/src-migrate/pages/register.tsx
@@ -1,7 +1,7 @@
import BasicLayout from "@/core/components/layouts/BasicLayout"
import { useWindowSize } from "usehooks-ts"
-import Seo from "~/common/components/elements/Seo"
+import { Seo } from "~/components/seo"
import Register from "~/modules/register"
const RegisterPage = () => {
diff --git a/src-migrate/pages/shop/cart.module.css b/src-migrate/pages/shop/cart/cart.module.css
index d523a55a..d523a55a 100644
--- a/src-migrate/pages/shop/cart.module.css
+++ b/src-migrate/pages/shop/cart/cart.module.css
diff --git a/src-migrate/pages/shop/cart.tsx b/src-migrate/pages/shop/cart/index.tsx
index 5016c9b5..397852f9 100644
--- a/src-migrate/pages/shop/cart.tsx
+++ b/src-migrate/pages/shop/cart/index.tsx
@@ -4,7 +4,7 @@ import React, { useEffect, useMemo } from 'react'
import Link from 'next/link'
import { Button, Tooltip } from '@chakra-ui/react'
-import { getAuth } from '~/common/libs/auth'
+import { getAuth } from '~/libs/auth'
import { useCartStore } from '~/modules/cart/stores/useCartStore'
import CartItem from '~/modules/cart/components/Item'
@@ -64,6 +64,8 @@ const CartPage = () => {
colorScheme='yellow'
w='full'
isDisabled={hasSelectedPromo || !hasSelected}
+ as={Link}
+ href='/shop/quotation'
>
Quotation
</Button>
diff --git a/src-migrate/pages/shop/product/[slug].tsx b/src-migrate/pages/shop/product/[slug].tsx
new file mode 100644
index 00000000..883532ed
--- /dev/null
+++ b/src-migrate/pages/shop/product/[slug].tsx
@@ -0,0 +1,73 @@
+import style from './product.module.css'
+
+import { GetServerSideProps, NextPage } from 'next'
+import React from 'react'
+import dynamic from 'next/dynamic'
+import cookie from 'cookie'
+
+import { getProductById } from '~/services/product'
+import { getIdFromSlug } from '~/libs/slug'
+import { IProductDetail } from '~/types/product'
+
+import { Seo } from '~/components/seo'
+
+const BasicLayout = dynamic(() => import('@/core/components/layouts/BasicLayout'), { ssr: false })
+const ProductDetail = dynamic(() => import('~/modules/product-detail'), { ssr: false })
+
+type PageProps = {
+ product: IProductDetail
+}
+
+export const getServerSideProps: GetServerSideProps<PageProps> = (async (context) => {
+ const { slug } = context.query
+ const cookieString = context.req.headers.cookie;
+ const cookies = cookieString ? cookie.parse(cookieString) : {};
+ const auth = cookies?.auth ? JSON.parse(cookies.auth) : {};
+ const tier = auth?.pricelist || ''
+
+ const productId = getIdFromSlug(slug as string)
+
+ const product = await getProductById(productId, tier)
+
+ if (!product) return { notFound: true }
+
+ return {
+ props: { product }
+ }
+})
+
+const ProductDetailPage: NextPage<PageProps> = ({ product }) => {
+ return (
+ <BasicLayout>
+ <Seo
+ title={`${product.name} - Indoteknik.com`}
+ description='Temukan pilihan produk B2B Industri &amp; Alat Teknik untuk Perusahaan, UMKM &amp; Pemerintah dengan lengkap, mudah dan transparan.'
+ openGraph={{
+ // url: process.env.NEXT_PUBLIC_SELF_HOST + router.asPath,
+ images: [
+ {
+ url: product?.image,
+ width: 800,
+ height: 800,
+ alt: product?.name,
+ },
+ ],
+ type: 'product',
+ }}
+ additionalMetaTags={[
+ {
+ name: 'keywords',
+ content: `${product?.name}, Harga ${product?.name}, Beli ${product?.name}, Spesifikasi ${product?.name}`,
+ }
+ ]}
+ // canonical=''
+ />
+
+ <div className='md:container pt-10'>
+ <ProductDetail product={product} />
+ </div>
+ </BasicLayout>
+ )
+}
+
+export default ProductDetailPage \ No newline at end of file
diff --git a/src-migrate/pages/shop/product/product.module.css b/src-migrate/pages/shop/product/product.module.css
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/src-migrate/pages/shop/product/product.module.css