From 524b9c58186ccd0d4f0b8f8bcfb84831bb02727b Mon Sep 17 00:00:00 2001 From: Henrik Larsson Date: Sun, 13 Aug 2023 14:36:35 +0200 Subject: [PATCH] Tried some updates --- app/[locale]/{page.tsx => ...page.tsx} | 0 .../{[...slug] => [[...slug]]}/page.tsx | 8 +++--- .../pages}/category-page.tsx | 0 app/[locale]/[[...slug]]/pages/home-page.tsx | 22 ++++++++++++++++ .../pages}/product-page.tsx | 0 .../pages}/single-page.tsx | 0 helpers/get-params-from-slug.ts | 26 ------------------- helpers/get-query-from-slug.ts | 17 +++++++++--- lib/sanity/queries.tsx | 2 -- 9 files changed, 41 insertions(+), 34 deletions(-) rename app/[locale]/{page.tsx => ...page.tsx} (100%) rename app/[locale]/{[...slug] => [[...slug]]}/page.tsx (83%) rename app/[locale]/{[...slug]/components => [[...slug]]/pages}/category-page.tsx (100%) create mode 100644 app/[locale]/[[...slug]]/pages/home-page.tsx rename app/[locale]/{[...slug]/components => [[...slug]]/pages}/product-page.tsx (100%) rename app/[locale]/{[...slug]/components => [[...slug]]/pages}/single-page.tsx (100%) delete mode 100644 helpers/get-params-from-slug.ts diff --git a/app/[locale]/page.tsx b/app/[locale]/...page.tsx similarity index 100% rename from app/[locale]/page.tsx rename to app/[locale]/...page.tsx diff --git a/app/[locale]/[...slug]/page.tsx b/app/[locale]/[[...slug]]/page.tsx similarity index 83% rename from app/[locale]/[...slug]/page.tsx rename to app/[locale]/[[...slug]]/page.tsx index 5f6c1e317..e90545d31 100644 --- a/app/[locale]/[...slug]/page.tsx +++ b/app/[locale]/[[...slug]]/page.tsx @@ -2,9 +2,10 @@ import getQueryFromSlug from '@/helpers/get-query-from-slug'; import { clientFetch } from 'lib/sanity/sanity.client'; import type { Metadata } from 'next'; import { notFound } from 'next/navigation'; -import CategoryPage from './components/category-page'; -import ProductPage from './components/product-page'; -import SinglePage from './components/single-page'; +import CategoryPage from './pages/category-page'; +import HomePage from './pages/home-page'; +import ProductPage from './pages/product-page'; +import SinglePage from './pages/single-page'; export const runtime = 'edge'; @@ -48,6 +49,7 @@ export default async function Page({ params }: PageParams) { return ( <> + {docType === 'home' && } {docType === 'page' && } {docType === 'product' && } {docType === 'category' && } diff --git a/app/[locale]/[...slug]/components/category-page.tsx b/app/[locale]/[[...slug]]/pages/category-page.tsx similarity index 100% rename from app/[locale]/[...slug]/components/category-page.tsx rename to app/[locale]/[[...slug]]/pages/category-page.tsx diff --git a/app/[locale]/[[...slug]]/pages/home-page.tsx b/app/[locale]/[[...slug]]/pages/home-page.tsx new file mode 100644 index 000000000..cfc3f27e9 --- /dev/null +++ b/app/[locale]/[[...slug]]/pages/home-page.tsx @@ -0,0 +1,22 @@ +import DynamicContentManager from '@/components/layout/dynamic-content-manager/dynamic-content-manager'; +import { clientFetch } from '@/lib/sanity/sanity.client'; +import { notFound } from 'next/navigation'; + +interface HomePageParams { + query: string; + queryParams: { + locale: string; + }; +} + +export default async function HomePage({ query = '', queryParams }: HomePageParams) { + const homePage = await clientFetch(query, queryParams); + + if (!homePage) return notFound(); + + return ( +
+ ; +
+ ); +} diff --git a/app/[locale]/[...slug]/components/product-page.tsx b/app/[locale]/[[...slug]]/pages/product-page.tsx similarity index 100% rename from app/[locale]/[...slug]/components/product-page.tsx rename to app/[locale]/[[...slug]]/pages/product-page.tsx diff --git a/app/[locale]/[...slug]/components/single-page.tsx b/app/[locale]/[[...slug]]/pages/single-page.tsx similarity index 100% rename from app/[locale]/[...slug]/components/single-page.tsx rename to app/[locale]/[[...slug]]/pages/single-page.tsx diff --git a/helpers/get-params-from-slug.ts b/helpers/get-params-from-slug.ts deleted file mode 100644 index 14be5f585..000000000 --- a/helpers/get-params-from-slug.ts +++ /dev/null @@ -1,26 +0,0 @@ -const getParamsFromSlug = (slugArray: string[], locale: string) => { - let docType = '' - - const [slugStart] = slugArray - - // We now have to re-combine the slug array to match our slug in Sanity. - const queryParams = { - slug: `/${slugArray.join('/')}`, - locale: locale - } - - if (slugStart === `produkt` || slugStart === `product`) { - docType = `product` - } else if (slugStart === `kategori` || slugStart === `category`) { - docType = `category` - } else { - docType = `page` - } - - return { - docType, - queryParams, - } -} - -export default getParamsFromSlug \ No newline at end of file diff --git a/helpers/get-query-from-slug.ts b/helpers/get-query-from-slug.ts index 40776e1b2..2979b0101 100644 --- a/helpers/get-query-from-slug.ts +++ b/helpers/get-query-from-slug.ts @@ -1,17 +1,29 @@ import { categoryQuery, + homePageQuery, pageQuery, productQuery -} from '@/lib/sanity/queries' -import { groq } from 'next-sanity' +} from '@/lib/sanity/queries'; +import { groq } from 'next-sanity'; const getQueryFromSlug = (slugArray: string[], locale: string) => { const docQuery: { [index: string]: string } = { + 'home': groq`${homePageQuery}`, 'product': groq`${productQuery}`, 'category': groq`${categoryQuery}`, 'page': groq`${pageQuery}`, } + if (!slugArray) { + return { + docType: "home", + queryParams: { + locale: locale + }, + query: docQuery.home, + } + } + let docType = '' const [slugStart] = slugArray @@ -21,7 +33,6 @@ const getQueryFromSlug = (slugArray: string[], locale: string) => { slug: `/${slugArray.join("/")}`, locale: locale }; - console.log(slugStart) if (slugStart === `produkt` || slugStart === `product`) { docType = `product` diff --git a/lib/sanity/queries.tsx b/lib/sanity/queries.tsx index 5980cf7e8..4e3e5bae3 100644 --- a/lib/sanity/queries.tsx +++ b/lib/sanity/queries.tsx @@ -164,11 +164,9 @@ export const reusableSection = ` export const homePageQuery = `*[_type == "home" && language == $locale][0] { _type, title, - "slug": slug.current, "locale": language, "translations": *[_type == "translation.metadata" && references(^._id)].translations[].value->{ title, - "slug": slug.current, "locale": language }, content[] {