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:
@@ -10,6 +10,7 @@ import { NuqsAdapter } from "@scandic-hotels/booking-flow/utils/nuqs"
|
|||||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||||
import { TrpcProvider } from "@scandic-hotels/trpc/Provider"
|
import { TrpcProvider } from "@scandic-hotels/trpc/Provider"
|
||||||
|
|
||||||
|
import { RACRouterProvider } from "@/components/RACRouterProvider"
|
||||||
import { getMessages } from "@/i18n"
|
import { getMessages } from "@/i18n"
|
||||||
import ClientIntlProvider from "@/i18n/Provider"
|
import ClientIntlProvider from "@/i18n/Provider"
|
||||||
import { setLang } from "@/i18n/serverContext"
|
import { setLang } from "@/i18n/serverContext"
|
||||||
@@ -62,26 +63,28 @@ export default async function RootLayout(props: RootLayoutProps) {
|
|||||||
<NuqsAdapter>
|
<NuqsAdapter>
|
||||||
{/* TODO handle onError */}
|
{/* TODO handle onError */}
|
||||||
<TrpcProvider>
|
<TrpcProvider>
|
||||||
<BookingFlowContextProvider
|
<RACRouterProvider>
|
||||||
data={{
|
<BookingFlowContextProvider
|
||||||
// TODO
|
data={{
|
||||||
isLoggedIn: false,
|
// TODO
|
||||||
}}
|
isLoggedIn: false,
|
||||||
>
|
|
||||||
<BookingFlowTrackingProvider
|
|
||||||
trackingFunctions={{
|
|
||||||
trackBookingSearchClick,
|
|
||||||
trackAccordionItemOpen,
|
|
||||||
trackOpenSidePeek,
|
|
||||||
trackGenericEvent,
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Header />
|
<BookingFlowTrackingProvider
|
||||||
{props.bookingwidget}
|
trackingFunctions={{
|
||||||
<main>{children}</main>
|
trackBookingSearchClick,
|
||||||
<Footer />
|
trackAccordionItemOpen,
|
||||||
</BookingFlowTrackingProvider>
|
trackOpenSidePeek,
|
||||||
</BookingFlowContextProvider>
|
trackGenericEvent,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Header />
|
||||||
|
{props.bookingwidget}
|
||||||
|
<main>{children}</main>
|
||||||
|
<Footer />
|
||||||
|
</BookingFlowTrackingProvider>
|
||||||
|
</BookingFlowContextProvider>
|
||||||
|
</RACRouterProvider>
|
||||||
</TrpcProvider>
|
</TrpcProvider>
|
||||||
</NuqsAdapter>
|
</NuqsAdapter>
|
||||||
</ClientIntlProvider>
|
</ClientIntlProvider>
|
||||||
|
|||||||
22
apps/partner-sas/components/RACRouterProvider.tsx
Normal file
22
apps/partner-sas/components/RACRouterProvider.tsx
Normal 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>
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user