@@ -13,54 +13,25 @@ export const ReferralHandler: React.FC<Props> = ({ appId }) => {
1313 const referralCode = searchParams . get ( 'referral_code' ) ;
1414 const [ processed , setProcessed ] = useState ( false ) ;
1515
16- const utils = api . useUtils ( ) ;
17- const { mutateAsync : createMembership } =
18- api . apps . app . memberships . create . useMutation ( ) ;
19- const { mutateAsync : updateReferrer } =
20- api . apps . app . memberships . update . referrer . useMutation ( ) ;
16+ const { mutateAsync : registerReferral } =
17+ api . apps . app . registerReferral . useMutation ( ) ;
2118
2219 useEffect ( ( ) => {
2320 if ( ! referralCode || processed ) return ;
2421
2522 const processReferralCode = async ( ) => {
26- const referralCodeData = await utils . apps . app . referralCode . get . byCode
27- . fetch ( referralCode )
28- . catch ( ( ) => null ) ;
29-
30- if ( ! referralCodeData ) {
31- setProcessed ( true ) ;
32- return ;
33- }
34-
35- const membership = await utils . apps . app . memberships . get
36- . fetch ( { appId } )
37- . catch ( ( ) => null ) ;
38-
39- // Only update if user has no referrer yet
40- if ( membership ?. referrerId === null ) {
41- await updateReferrer ( {
42- appId,
43- referrerId : referralCodeData . id ,
44- } ) . catch ( ( ) => {
45- // Silently fail - user might already have a referrer from a race condition
46- } ) ;
47- }
48-
49- // Create membership if it doesn't exist
50- if ( ! membership ) {
51- await createMembership ( {
52- appId,
53- referrerId : referralCodeData . id ,
54- } ) . catch ( ( ) => {
55- // Silently fail - membership might have been created in the meantime
56- } ) ;
57- }
23+ await registerReferral ( {
24+ appId,
25+ code : referralCode ,
26+ } ) . catch ( ( ) => {
27+ // Silently fail - referral code may be invalid, expired, or user may already have a referrer
28+ } ) ;
5829
5930 setProcessed ( true ) ;
6031 } ;
6132
6233 void processReferralCode ( ) ;
63- } , [ referralCode , appId , createMembership , updateReferrer , processed , utils ] ) ;
34+ } , [ referralCode , appId , registerReferral , processed ] ) ;
6435
6536 return null ;
6637} ;
0 commit comments