Skip to content

Commit 3d5c15b

Browse files
authored
Merge pull request #20409 from mozilla/pay-3653-invalid-url
fix(payments): full relative paths for Next.js 15 redirects
2 parents 3f9e5a6 + 114392a commit 3d5c15b

19 files changed

Lines changed: 267 additions & 40 deletions

File tree

apps/payments/next/app/[locale]/[offeringId]/[interval]/checkout/[cartId]/error/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,11 @@ export default async function CheckoutError({
5858
const acceptLanguage = (await headers()).get('accept-language');
5959

6060
const sessionPromise = auth();
61+
const currentPathname = `/${resolvedParams.locale}/${resolvedParams.offeringId}/${resolvedParams.interval}/checkout/${resolvedParams.cartId}/error`;
6162
const cartPromise = getCartOrRedirectAction(
6263
resolvedParams.cartId,
6364
SupportedPages.ERROR,
65+
currentPathname,
6466
resolvedSearchParams
6567
);
6668
const l10n = getApp().getL10n(acceptLanguage, locale);
@@ -135,4 +137,4 @@ export default async function CheckoutError({
135137
</section>
136138
</>
137139
);
138-
}
140+
}

apps/payments/next/app/[locale]/[offeringId]/[interval]/checkout/[cartId]/needs_input/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,11 @@ export default async function NeedsInputPage({
5454
const l10n = getApp().getL10n(acceptLanguage, locale);
5555

5656
const sessionPromise = auth();
57+
const currentPathname = `/${resolvedParams.locale}/${resolvedParams.offeringId}/${resolvedParams.interval}/checkout/${resolvedParams.cartId}/needs_input`;
5758
const cartPromise = getCartOrRedirectAction(
5859
resolvedParams.cartId,
5960
SupportedPages.NEEDS_INPUT,
61+
currentPathname,
6062
resolvedSearchParams
6163
);
6264
const [session, cart] = await Promise.all([sessionPromise, cartPromise]);
@@ -107,4 +109,4 @@ export default async function NeedsInputPage({
107109
</h2>
108110
</section>
109111
);
110-
}
112+
}

apps/payments/next/app/[locale]/[offeringId]/[interval]/checkout/[cartId]/processing/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,11 @@ export default async function ProcessingPage({
4848
const { locale } = resolvedParams;
4949
const acceptLanguage = (await headers()).get('accept-language');
5050
const l10n = getApp().getL10n(acceptLanguage, locale);
51+
const currentPathname = `/${resolvedParams.locale}/${resolvedParams.offeringId}/${resolvedParams.interval}/checkout/${resolvedParams.cartId}/processing`;
5152
await validateCartStateAndRedirectAction(
5253
resolvedParams.cartId,
5354
SupportedPages.PROCESSING,
55+
currentPathname,
5456
resolvedSearchParams
5557
);
5658
return (
@@ -69,4 +71,4 @@ export default async function ProcessingPage({
6971
</h2>
7072
</section>
7173
);
72-
}
74+
}

apps/payments/next/app/[locale]/[offeringId]/[interval]/checkout/[cartId]/start/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,11 @@ export default async function Checkout({
7272
acceptLanguage,
7373
locale
7474
);
75+
const currentPathname = `/${resolvedParams.locale}/${resolvedParams.offeringId}/${resolvedParams.interval}/checkout/${resolvedParams.cartId}/start`;
7576
const cartPromise = getCartOrRedirectAction(
7677
resolvedParams.cartId,
7778
SupportedPages.START,
79+
currentPathname,
7880
resolvedSearchParams
7981
);
8082
//TODO - Replace with cartPromise as part of FXA-8903
@@ -298,4 +300,4 @@ export default async function Checkout({
298300
</section>
299301
</>
300302
);
301-
}
303+
}

apps/payments/next/app/[locale]/[offeringId]/[interval]/checkout/[cartId]/success/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,11 @@ export default async function CheckoutSuccess({
6060
acceptLanguage,
6161
locale
6262
);
63+
const currentPathname = `/${resolvedParams.locale}/${resolvedParams.offeringId}/${resolvedParams.interval}/checkout/${resolvedParams.cartId}/success`;
6364
const cartDataPromise = getCartOrRedirectAction(
6465
resolvedParams.cartId,
6566
SupportedPages.SUCCESS,
67+
currentPathname,
6668
resolvedSearchParams
6769
);
6870
const sessionPromise = auth();
@@ -217,4 +219,4 @@ export default async function CheckoutSuccess({
217219
</a>
218220
</section>
219221
);
220-
}
222+
}

apps/payments/next/app/[locale]/[offeringId]/[interval]/upgrade/[cartId]/(mainLayout)/error/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,11 @@ export default async function UpgradeError({
5656
const acceptLanguage = (await headers()).get('accept-language');
5757

5858
const sessionPromise = auth();
59+
const currentPathname = `/${resolvedParams.locale}/${resolvedParams.offeringId}/${resolvedParams.interval}/upgrade/${resolvedParams.cartId}/error`;
5960
const cartPromise = getCartOrRedirectAction(
6061
resolvedParams.cartId,
6162
SupportedPages.ERROR,
63+
currentPathname,
6264
resolvedSearchParams
6365
);
6466
const l10n = getApp().getL10n(acceptLanguage, locale);
@@ -131,4 +133,4 @@ export default async function UpgradeError({
131133
</section>
132134
</>
133135
);
134-
}
136+
}

apps/payments/next/app/[locale]/[offeringId]/[interval]/upgrade/[cartId]/(mainLayout)/needs_input/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,11 @@ export default async function NeedsInputPage({
5252
const { locale } = resolvedParams;
5353
const acceptLanguage = (await headers()).get('accept-language');
5454
const l10n = getApp().getL10n(acceptLanguage, locale);
55+
const currentPathname = `/${resolvedParams.locale}/${resolvedParams.offeringId}/${resolvedParams.interval}/upgrade/${resolvedParams.cartId}/needs_input`;
5556
const cartPromise = getCartOrRedirectAction(
5657
resolvedParams.cartId,
5758
SupportedPages.NEEDS_INPUT,
59+
currentPathname,
5860
resolvedSearchParams
5961
);
6062
const sessionPromise = auth();
@@ -105,4 +107,4 @@ export default async function NeedsInputPage({
105107
</h2>
106108
</section>
107109
);
108-
}
110+
}

apps/payments/next/app/[locale]/[offeringId]/[interval]/upgrade/[cartId]/(mainLayout)/processing/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,11 @@ export default async function ProcessingPage({
4848
const { locale } = resolvedParams;
4949
const acceptLanguage = (await headers()).get('accept-language');
5050
const l10n = getApp().getL10n(acceptLanguage, locale);
51+
const currentPathname = `/${resolvedParams.locale}/${resolvedParams.offeringId}/${resolvedParams.interval}/upgrade/${resolvedParams.cartId}/processing`;
5152
await validateCartStateAndRedirectAction(
5253
resolvedParams.cartId,
5354
SupportedPages.PROCESSING,
55+
currentPathname,
5456
resolvedSearchParams
5557
);
5658
return (
@@ -69,4 +71,4 @@ export default async function ProcessingPage({
6971
</h2>
7072
</section>
7173
);
72-
}
74+
}

apps/payments/next/app/[locale]/[offeringId]/[interval]/upgrade/[cartId]/(mainLayout)/success/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,11 @@ export default async function UpgradeSuccess({
6464
acceptLanguage,
6565
locale
6666
);
67+
const currentPathname = `/${resolvedParams.locale}/${resolvedParams.offeringId}/${resolvedParams.interval}/upgrade/${resolvedParams.cartId}/success`;
6768
const cartDataPromise = getCartOrRedirectAction(
6869
resolvedParams.cartId,
6970
SupportedPages.SUCCESS,
71+
currentPathname,
7072
resolvedSearchParams
7173
);
7274
const sessionPromise = auth();
@@ -240,4 +242,4 @@ export default async function UpgradeSuccess({
240242
</section>
241243
</>
242244
);
243-
}
245+
}

apps/payments/next/app/[locale]/[offeringId]/[interval]/upgrade/[cartId]/(startLayout)/start/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,11 @@ export default async function Upgrade({
5959
const l10n = getApp().getL10n(acceptLanguage, locale);
6060
const session = await auth();
6161

62+
const currentPathname = `/${resolvedParams.locale}/${resolvedParams.offeringId}/${resolvedParams.interval}/upgrade/${resolvedParams.cartId}/start`;
6263
const cartDataPromise = getCartOrRedirectAction(
6364
resolvedParams.cartId,
6465
SupportedPages.START,
66+
currentPathname,
6567
resolvedSearchParams
6668
);
6769
const cmsDataPromise = fetchCMSData(
@@ -206,4 +208,4 @@ export default async function Upgrade({
206208
</section>
207209
</>
208210
);
209-
}
211+
}

0 commit comments

Comments
 (0)