Merged in fix/SW-3026-prod---users-are-not-focused-on- (pull request #2379)
fix: SW-3026 Fixed scroll issue * fix: SW-3026 Fixed scroll issue * fix: SW-3026 Moved to global solution for scroll to top after page navigation Approved-by: Tobias Johansson Approved-by: Linus Flood
This commit is contained in:
@@ -17,11 +17,11 @@ import Footer from "@/components/Footer"
|
|||||||
import Header from "@/components/Header"
|
import Header from "@/components/Header"
|
||||||
import StorageCleaner from "@/components/HotelReservation/EnterDetails/StorageCleaner"
|
import StorageCleaner from "@/components/HotelReservation/EnterDetails/StorageCleaner"
|
||||||
import { RACRouterProvider } from "@/components/RACRouterProvider"
|
import { RACRouterProvider } from "@/components/RACRouterProvider"
|
||||||
|
import RouteChange from "@/components/RouteChange"
|
||||||
import SitewideAlert from "@/components/SitewideAlert"
|
import SitewideAlert from "@/components/SitewideAlert"
|
||||||
import { ToastHandler } from "@/components/TempDesignSystem/Toasts"
|
import { ToastHandler } from "@/components/TempDesignSystem/Toasts"
|
||||||
import AdobeSDKScript from "@/components/TrackingSDK/AdobeSDKScript"
|
import AdobeSDKScript from "@/components/TrackingSDK/AdobeSDKScript"
|
||||||
import GTMScript from "@/components/TrackingSDK/GTMScript"
|
import GTMScript from "@/components/TrackingSDK/GTMScript"
|
||||||
import RouterTracking from "@/components/TrackingSDK/RouterTracking"
|
|
||||||
import { FontPreload } from "@/fonts/font-preloading"
|
import { FontPreload } from "@/fonts/font-preloading"
|
||||||
import { getMessages } from "@/i18n"
|
import { getMessages } from "@/i18n"
|
||||||
import ClientIntlProvider from "@/i18n/Provider"
|
import ClientIntlProvider from "@/i18n/Provider"
|
||||||
@@ -74,7 +74,7 @@ export default async function RootLayout(
|
|||||||
>
|
>
|
||||||
<TrpcProvider>
|
<TrpcProvider>
|
||||||
<RACRouterProvider>
|
<RACRouterProvider>
|
||||||
<RouterTracking />
|
<RouteChange />
|
||||||
<SitewideAlert />
|
<SitewideAlert />
|
||||||
<Header />
|
<Header />
|
||||||
{bookingwidget}
|
{bookingwidget}
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import CookieBotConsent from "@/components/CookieBot"
|
|||||||
import AdobeScript from "@/components/Current/AdobeScript"
|
import AdobeScript from "@/components/Current/AdobeScript"
|
||||||
import Footer from "@/components/Current/Footer"
|
import Footer from "@/components/Current/Footer"
|
||||||
import LangPopup from "@/components/Current/LangPopup"
|
import LangPopup from "@/components/Current/LangPopup"
|
||||||
|
import RouteChange from "@/components/RouteChange"
|
||||||
import SkipToMainContent from "@/components/SkipToMainContent"
|
import SkipToMainContent from "@/components/SkipToMainContent"
|
||||||
import RouterTracking from "@/components/TrackingSDK/RouterTracking"
|
|
||||||
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"
|
||||||
@@ -70,7 +70,7 @@ export default async function RootLayout(
|
|||||||
locale={params.lang}
|
locale={params.lang}
|
||||||
messages={messages}
|
messages={messages}
|
||||||
>
|
>
|
||||||
<RouterTracking />
|
<RouteChange />
|
||||||
{header}
|
{header}
|
||||||
{children}
|
{children}
|
||||||
<Footer />
|
<Footer />
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ import TrpcProvider from "@/lib/trpc/Provider"
|
|||||||
import { SessionRefresher } from "@/components/Auth/TokenRefresher"
|
import { SessionRefresher } from "@/components/Auth/TokenRefresher"
|
||||||
import CookieBotConsent from "@/components/CookieBot"
|
import CookieBotConsent from "@/components/CookieBot"
|
||||||
import StorageCleaner from "@/components/HotelReservation/EnterDetails/StorageCleaner"
|
import StorageCleaner from "@/components/HotelReservation/EnterDetails/StorageCleaner"
|
||||||
|
import RouteChange from "@/components/RouteChange"
|
||||||
import { ToastHandler } from "@/components/TempDesignSystem/Toasts"
|
import { ToastHandler } from "@/components/TempDesignSystem/Toasts"
|
||||||
import AdobeSDKScript from "@/components/TrackingSDK/AdobeSDKScript"
|
import AdobeSDKScript from "@/components/TrackingSDK/AdobeSDKScript"
|
||||||
import GTMScript from "@/components/TrackingSDK/GTMScript"
|
import GTMScript from "@/components/TrackingSDK/GTMScript"
|
||||||
import RouterTracking from "@/components/TrackingSDK/RouterTracking"
|
|
||||||
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"
|
||||||
@@ -61,7 +61,7 @@ export default async function RootLayout(
|
|||||||
messages={messages}
|
messages={messages}
|
||||||
>
|
>
|
||||||
<TrpcProvider>
|
<TrpcProvider>
|
||||||
<RouterTracking />
|
<RouteChange />
|
||||||
{children}
|
{children}
|
||||||
<ToastHandler />
|
<ToastHandler />
|
||||||
<SessionRefresher />
|
<SessionRefresher />
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ import TrpcProvider from "@/lib/trpc/Provider"
|
|||||||
import TokenRefresher from "@/components/Auth/TokenRefresher"
|
import TokenRefresher from "@/components/Auth/TokenRefresher"
|
||||||
import CookieBotConsent from "@/components/CookieBot"
|
import CookieBotConsent from "@/components/CookieBot"
|
||||||
import StorageCleaner from "@/components/HotelReservation/EnterDetails/StorageCleaner"
|
import StorageCleaner from "@/components/HotelReservation/EnterDetails/StorageCleaner"
|
||||||
|
import RouteChange from "@/components/RouteChange"
|
||||||
import { ToastHandler } from "@/components/TempDesignSystem/Toasts"
|
import { ToastHandler } from "@/components/TempDesignSystem/Toasts"
|
||||||
import AdobeSDKScript from "@/components/TrackingSDK/AdobeSDKScript"
|
import AdobeSDKScript from "@/components/TrackingSDK/AdobeSDKScript"
|
||||||
import GTMScript from "@/components/TrackingSDK/GTMScript"
|
import GTMScript from "@/components/TrackingSDK/GTMScript"
|
||||||
import RouterTracking from "@/components/TrackingSDK/RouterTracking"
|
|
||||||
import { FontPreload } from "@/fonts/font-preloading"
|
import { FontPreload } from "@/fonts/font-preloading"
|
||||||
import { getMessages } from "@/i18n"
|
import { getMessages } from "@/i18n"
|
||||||
import ClientIntlProvider from "@/i18n/Provider"
|
import ClientIntlProvider from "@/i18n/Provider"
|
||||||
@@ -66,7 +66,7 @@ export default async function RootLayout(
|
|||||||
messages={messages}
|
messages={messages}
|
||||||
>
|
>
|
||||||
<TrpcProvider>
|
<TrpcProvider>
|
||||||
<RouterTracking />
|
<RouteChange />
|
||||||
{children}
|
{children}
|
||||||
<ToastHandler />
|
<ToastHandler />
|
||||||
<TokenRefresher />
|
<TokenRefresher />
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ import { Lang } from "@scandic-hotels/common/constants/language"
|
|||||||
|
|
||||||
import TrpcProvider from "@/lib/trpc/Provider"
|
import TrpcProvider from "@/lib/trpc/Provider"
|
||||||
|
|
||||||
|
import RouteChange from "@/components/RouteChange"
|
||||||
import { ToastHandler } from "@/components/TempDesignSystem/Toasts"
|
import { ToastHandler } from "@/components/TempDesignSystem/Toasts"
|
||||||
import AdobeSDKScript from "@/components/TrackingSDK/AdobeSDKScript"
|
import AdobeSDKScript from "@/components/TrackingSDK/AdobeSDKScript"
|
||||||
import GTMScript from "@/components/TrackingSDK/GTMScript"
|
import GTMScript from "@/components/TrackingSDK/GTMScript"
|
||||||
import RouterTracking from "@/components/TrackingSDK/RouterTracking"
|
|
||||||
import { FontPreload } from "@/fonts/font-preloading"
|
import { FontPreload } from "@/fonts/font-preloading"
|
||||||
import { getMessages } from "@/i18n"
|
import { getMessages } from "@/i18n"
|
||||||
import ClientIntlProvider from "@/i18n/Provider"
|
import ClientIntlProvider from "@/i18n/Provider"
|
||||||
@@ -57,7 +57,7 @@ export default async function RootLayout(
|
|||||||
messages={messages}
|
messages={messages}
|
||||||
>
|
>
|
||||||
<TrpcProvider>
|
<TrpcProvider>
|
||||||
<RouterTracking />
|
<RouteChange />
|
||||||
{children}
|
{children}
|
||||||
<ToastHandler />
|
<ToastHandler />
|
||||||
</TrpcProvider>
|
</TrpcProvider>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import useTrackingStore from "@/stores/tracking"
|
|||||||
import useLang from "@/hooks/useLang"
|
import useLang from "@/hooks/useLang"
|
||||||
import { trackPageViewStart } from "@/utils/tracking"
|
import { trackPageViewStart } from "@/utils/tracking"
|
||||||
|
|
||||||
export default function RouterTracking() {
|
export default function RouteChange() {
|
||||||
const pathName = usePathname()
|
const pathName = usePathname()
|
||||||
const searchParams = useSearchParams()
|
const searchParams = useSearchParams()
|
||||||
const currentLang = useLang()
|
const currentLang = useLang()
|
||||||
@@ -28,6 +28,11 @@ export default function RouterTracking() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hasPathOrLangChanged()) {
|
||||||
|
// Scroll to top on page load whenever page is navigated to new URL (page)
|
||||||
|
window.scrollTo({ top: 0, left: 0, behavior: "instant" })
|
||||||
|
}
|
||||||
|
|
||||||
updateRouteInfo(pathName, currentLang, searchParams)
|
updateRouteInfo(pathName, currentLang, searchParams)
|
||||||
if (hasPathOrLangChanged() || hasBookingFlowParamsChanged()) {
|
if (hasPathOrLangChanged() || hasBookingFlowParamsChanged()) {
|
||||||
setInitialPageLoadTime(Date.now())
|
setInitialPageLoadTime(Date.now())
|
||||||
Reference in New Issue
Block a user