feat: create route for hotel reservation

This commit is contained in:
Fredrik Thorsson
2024-07-03 09:40:25 +02:00
parent 2eb5e2aae3
commit 37f4713715
7 changed files with 65 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
.layout {
height: 100vh;
}

View File

@@ -0,0 +1,18 @@
import Title from "@/components/TempDesignSystem/Text/Title"
import styles from "./layout.module.css"
import { LangParams, LayoutArgs } from "@/types/params"
export default function HotelReservationLayout({
children,
}: React.PropsWithChildren<LayoutArgs<LangParams>>) {
return (
<div className={styles.layout}>
<Title as="h1" color="black">
Lorem, ipsum.
</Title>
{children}
</div>
)
}

View File

@@ -0,0 +1,10 @@
import { LangParams, PageArgs } from "@/types/params"
export default function HotelReservationPage({ params }: PageArgs<LangParams>) {
return (
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Beatae,
praesentium?
</div>
)
}

View File

@@ -0,0 +1,11 @@
/** @type {import('@/types/routes').LangRoute} */
export const hotelReservation = {
en: "/en/hotelreservation",
sv: "/sv/hotellbokning",
no: "/no/hotell-reservasjon",
fi: "/fi/hotellivaraus",
da: "/da/hotel-reservation",
de: "/de/hotelreservierung",
}
export const bookingFlow = [...Object.values(hotelReservation)]

View File

@@ -2,6 +2,7 @@ import { NextMiddleware, NextResponse } from "next/server"
import { findLang, Lang } from "./constants/languages"
import * as authRequired from "./middlewares/authRequired"
import * as bookingFlow from "./middlewares/bookingFlow"
import * as cmsContent from "./middlewares/cmsContent"
import * as currentWebLogin from "./middlewares/currentWebLogin"
import * as currentWebLogout from "./middlewares/currentWebLogout"
@@ -34,6 +35,7 @@ export const middleware: NextMiddleware = async (request, event) => {
handleAuth,
myPages,
webView,
bookingFlow,
cmsContent,
]

View File

@@ -0,0 +1,15 @@
import { NextResponse } from "next/server"
import { bookingFlow } from "@/constants/routes/hotelReservation"
import type { NextMiddleware } from "next/server"
import type { MiddlewareMatcher } from "@/types/middleware"
export const middleware: NextMiddleware = () => {
return NextResponse.next()
}
export const matcher: MiddlewareMatcher = (request) => {
return bookingFlow.includes(request.nextUrl.pathname)
}

View File

@@ -1,6 +1,7 @@
import createJiti from "jiti"
import { login, logout } from "./constants/routes/handleAuth.js"
import { hotelReservation } from "./constants/routes/hotelReservation.js"
import { myPages } from "./constants/routes/myPages.js"
const jiti = createJiti(new URL(import.meta.url).pathname)
@@ -101,6 +102,11 @@ const nextConfig = {
source: `${myPages.sv}/:path*`,
destination: `/sv/my-pages/:path*`,
},
{ source: hotelReservation.da, destination: "/da/hotelreservation" },
{ source: hotelReservation.de, destination: "/de/hotelreservation" },
{ source: hotelReservation.fi, destination: "/fi/hotelreservation" },
{ source: hotelReservation.no, destination: "/no/hotelreservation" },
{ source: hotelReservation.sv, destination: "/sv/hotelreservation" },
],
}
},