@@ -2,7 +2,7 @@ import React, { useState, useEffect } from "react";
2
2
import Parse from "parse" ;
3
3
import axios from "axios" ;
4
4
import Title from "../components/Title" ;
5
- import { useNavigate , NavLink } from "react-router-dom" ;
5
+ import { useNavigate , NavLink , useLocation } from "react-router-dom" ;
6
6
import login_img from "../assets/images/login_img.svg" ;
7
7
import { useWindowSize } from "../hook/useWindowSize" ;
8
8
import Alert from "../primitives/Alert" ;
@@ -14,6 +14,7 @@ import { isEnableSubscription } from "../constant/const";
14
14
const Signup = ( ) => {
15
15
const { width } = useWindowSize ( ) ;
16
16
const navigate = useNavigate ( ) ;
17
+ const location = useLocation ( ) ;
17
18
const dispatch = useDispatch ( ) ;
18
19
const [ name , setName ] = useState ( "" ) ;
19
20
const [ phone , setPhone ] = useState ( "" ) ;
@@ -68,6 +69,19 @@ const Signup = () => {
68
69
localStorage . setItem ( "baseUrl" , baseUrl ) ;
69
70
localStorage . setItem ( "parseAppId" , appid ) ;
70
71
} ;
72
+
73
+ const handleFreePlan = async ( id ) => {
74
+ try {
75
+ const params = { userId : id } ;
76
+ const res = await Parse . Cloud . run ( "freesubscription" , params ) ;
77
+ if ( res . status === "error" ) {
78
+ alert ( res . result ) ;
79
+ }
80
+ } catch ( err ) {
81
+ console . log ( "err in free subscribe" , err . message ) ;
82
+ alert ( "Somenthing went wrong, please try again later!" ) ;
83
+ }
84
+ } ;
71
85
const handleSubmit = ( event ) => {
72
86
event . preventDefault ( ) ;
73
87
if ( lengthValid && caseDigitValid && specialCharValid ) {
@@ -111,7 +125,13 @@ const Signup = () => {
111
125
params
112
126
) ;
113
127
if ( usersignup ) {
114
- handleNavigation ( r . getSessionToken ( ) ) ;
128
+ const param = new URLSearchParams ( location . search ) ;
129
+ const isFreeplan =
130
+ param ?. get ( "subscription" ) === "freeplan" ;
131
+ if ( isFreeplan ) {
132
+ await handleFreePlan ( r . id ) ;
133
+ }
134
+ handleNavigation ( r . getSessionToken ( ) , isFreeplan ) ;
115
135
}
116
136
} catch ( err ) {
117
137
alert ( err . message ) ;
@@ -156,7 +176,7 @@ const Signup = () => {
156
176
}
157
177
} ;
158
178
159
- const handleNavigation = async ( sessionToken ) => {
179
+ const handleNavigation = async ( sessionToken , isFreeplan = false ) => {
160
180
const baseUrl = localStorage . getItem ( "baseUrl" ) ;
161
181
const parseAppId = localStorage . getItem ( "parseAppId" ) ;
162
182
const res = await axios . get ( baseUrl + "users/me" , {
@@ -325,7 +345,13 @@ const Signup = () => {
325
345
) ;
326
346
setState ( { loading : false } ) ;
327
347
if ( isEnableSubscription ) {
328
- navigate ( `/subscription` , { replace : true } ) ;
348
+ if ( isFreeplan ) {
349
+ navigate (
350
+ `/${ element . pageType } /${ element . pageId } `
351
+ ) ;
352
+ } else {
353
+ navigate ( `/subscription` , { replace : true } ) ;
354
+ }
329
355
} else {
330
356
alert ( "Registered user successfully" ) ;
331
357
navigate (
@@ -343,7 +369,13 @@ const Signup = () => {
343
369
localStorage . setItem ( "pageType" , element . pageType ) ;
344
370
setState ( { loading : false } ) ;
345
371
if ( isEnableSubscription ) {
346
- navigate ( `/subscription` , { replace : true } ) ;
372
+ if ( isFreeplan ) {
373
+ navigate (
374
+ `/${ element . pageType } /${ element . pageId } `
375
+ ) ;
376
+ } else {
377
+ navigate ( `/subscription` , { replace : true } ) ;
378
+ }
347
379
} else {
348
380
navigate (
349
381
`/${ element . pageType } /${ element . pageId } `
0 commit comments