File tree Expand file tree Collapse file tree 1 file changed +19
-3
lines changed
Expand file tree Collapse file tree 1 file changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -24,10 +24,13 @@ export const generateMetadata = async ({
2424
2525export default async function SponseePage ( {
2626 params,
27+ searchParams,
2728} : {
2829 params : Promise < { sponsee : string } >
30+ searchParams : Promise < Record < string , string | string [ ] | undefined > >
2931} ) {
3032 const { sponsee } = await params
33+ const resolvedSearchParams = await searchParams
3134 const sponseeName = sponsee . toLowerCase ( )
3235
3336 const referralCode = await db
@@ -66,7 +69,20 @@ export default async function SponseePage({
6669 )
6770 }
6871
69- redirect (
70- `/referrals/${ referralCode } ?referrer=${ encodeURIComponent ( sponseeName ) } ` ,
71- )
72+ // Build query string preserving all incoming params and adding/overriding referrer
73+ const queryParams = new URLSearchParams ( )
74+ for ( const [ key , value ] of Object . entries ( resolvedSearchParams ) ) {
75+ if ( value !== undefined ) {
76+ if ( Array . isArray ( value ) ) {
77+ for ( const v of value ) {
78+ queryParams . append ( key , v )
79+ }
80+ } else {
81+ queryParams . set ( key , value )
82+ }
83+ }
84+ }
85+ queryParams . set ( 'referrer' , sponseeName )
86+
87+ redirect ( `/referrals/${ referralCode } ?${ queryParams . toString ( ) } ` )
7288}
You can’t perform that action at this time.
0 commit comments