fix(LOY-192): fix toasts for surprises in webviews

This commit is contained in:
Christian Andolf
2025-03-20 16:27:24 +01:00
parent 68c000aa0f
commit ac8df04c49
2 changed files with 31 additions and 15 deletions

View File

@@ -7,6 +7,7 @@ import Script from "next/script"
import TrpcProvider from "@/lib/trpc/Provider" import TrpcProvider from "@/lib/trpc/Provider"
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 RouterTracking from "@/components/TrackingSDK/RouterTracking"
@@ -43,6 +44,7 @@ export default async function RootLayout({
<TrpcProvider> <TrpcProvider>
<RouterTracking /> <RouterTracking />
{children} {children}
<ToastHandler />
</TrpcProvider> </TrpcProvider>
</ServerIntlProvider> </ServerIntlProvider>
</body> </body>

View File

@@ -8,6 +8,10 @@ import { useIntl } from "react-intl"
import { customerService } from "@/constants/currentWebHrefs" import { customerService } from "@/constants/currentWebHrefs"
import { benefits } from "@/constants/routes/myPages" import { benefits } from "@/constants/routes/myPages"
import {
benefits as webviewBenefits,
myPagesWebviews,
} from "@/constants/routes/webviews"
import { trpc } from "@/lib/trpc/client" import { trpc } from "@/lib/trpc/client"
import Link from "@/components/TempDesignSystem/Link" import Link from "@/components/TempDesignSystem/Link"
@@ -56,22 +60,32 @@ export default function SurprisesNotification({
onSuccess: () => { onSuccess: () => {
utils.contentstack.rewards.current.invalidate({ lang }) utils.contentstack.rewards.current.invalidate({ lang })
if (pathname.indexOf(benefits[lang]) !== 0) { const onBenefitsPage = pathname.indexOf(benefits[lang]) === 0
toast.success( const onWebviewBenefitsPage =
<> pathname.indexOf(webviewBenefits[lang]) === 0
{intl.formatMessage(
{ if (onBenefitsPage || onWebviewBenefitsPage) {
id: "{amount, plural, one {Gift} other {Gifts}} added to your benefits", return
},
{ amount: surprises.length }
)}
<br />
<Link href={benefits[lang]} variant="underscored" color="burgundy">
{intl.formatMessage({ id: "Go to My Benefits" })}
</Link>
</>
)
} }
const benefitPageUrl = myPagesWebviews.includes(pathname)
? webviewBenefits[lang]
: benefits[lang]
toast.success(
<>
{intl.formatMessage(
{
id: "{amount, plural, one {Gift} other {Gifts}} added to your benefits",
},
{ amount: surprises.length }
)}
<br />
<Link href={benefitPageUrl} variant="underscored" color="burgundy">
{intl.formatMessage({ id: "Go to My Benefits" })}
</Link>
</>
)
}, },
onError: (error) => { onError: (error) => {
console.error("Failed to unwrap surprise", error) console.error("Failed to unwrap surprise", error)