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[] {