Merged in feat/sw-3418-add-routerprovider-to-partner-sas (pull request #2777)

feat(SW-3418): Add RouterProvider to partner-sas

* Add RouterProvider


Approved-by: Joakim Jäderberg
This commit is contained in:
Anton Gunnarsson
2025-09-09 08:20:17 +00:00
parent 70f3b8f016
commit 69268d88fb
2 changed files with 43 additions and 18 deletions

View File

@@ -10,6 +10,7 @@ import { NuqsAdapter } from "@scandic-hotels/booking-flow/utils/nuqs"
import { Lang } from "@scandic-hotels/common/constants/language"
import { TrpcProvider } from "@scandic-hotels/trpc/Provider"
import { RACRouterProvider } from "@/components/RACRouterProvider"
import { getMessages } from "@/i18n"
import ClientIntlProvider from "@/i18n/Provider"
import { setLang } from "@/i18n/serverContext"
@@ -62,26 +63,28 @@ export default async function RootLayout(props: RootLayoutProps) {
<NuqsAdapter>
{/* TODO handle onError */}
<TrpcProvider>
<BookingFlowContextProvider
data={{
// TODO
isLoggedIn: false,
}}
>
<BookingFlowTrackingProvider
trackingFunctions={{
trackBookingSearchClick,
trackAccordionItemOpen,
trackOpenSidePeek,
trackGenericEvent,
<RACRouterProvider>
<BookingFlowContextProvider
data={{
// TODO
isLoggedIn: false,
}}
>
<Header />
{props.bookingwidget}
<main>{children}</main>
<Footer />
</BookingFlowTrackingProvider>
</BookingFlowContextProvider>
<BookingFlowTrackingProvider
trackingFunctions={{
trackBookingSearchClick,
trackAccordionItemOpen,
trackOpenSidePeek,
trackGenericEvent,
}}
>
<Header />
{props.bookingwidget}
<main>{children}</main>
<Footer />
</BookingFlowTrackingProvider>
</BookingFlowContextProvider>
</RACRouterProvider>
</TrpcProvider>
</NuqsAdapter>
</ClientIntlProvider>

View File

@@ -0,0 +1,22 @@
// https://react-spectrum.adobe.com/react-aria/routing.html#app-router
"use client"
import { useRouter } from "next/navigation"
import { RouterProvider } from "react-aria-components"
import type { PropsWithChildren } from "react"
declare module "react-aria-components" {
interface RouterConfig {
routerOptions: NonNullable<
Parameters<ReturnType<typeof useRouter>["push"]>[1]
>
}
}
export function RACRouterProvider({ children }: PropsWithChildren) {
const router = useRouter()
return <RouterProvider navigate={router.push}>{children}</RouterProvider>
}