@@ -18,6 +18,7 @@ const ReviewScreen: React.FC<React.PropsWithChildren<CreateSubScreenProps>> = ({
1818 navigate,
1919 setValues,
2020} ) => {
21+ const [ error , setError ] = useState < boolean | string > ( false ) ;
2122 const [ loading , setLoading ] = useState ( false ) ;
2223 const [ success , setSuccess ] = useState ( false ) ;
2324
@@ -50,7 +51,7 @@ const ReviewScreen: React.FC<React.PropsWithChildren<CreateSubScreenProps>> = ({
5051 ) ;
5152 }
5253
53- fetch ( `${ window . location . origin } /server.php?action=createApp` , {
54+ fetch ( `http://localhost:5500 /server.php?action=createApp` , {
5455 method : 'POST' ,
5556 body : JSON . stringify ( {
5657 data : JSON . stringify ( formData ) ,
@@ -62,12 +63,16 @@ const ReviewScreen: React.FC<React.PropsWithChildren<CreateSubScreenProps>> = ({
6263 }
6364 } )
6465 . then ( ( response ) => {
65- setValues ( {
66- ...values ,
67- ...response ?. data ,
68- } ) ;
66+ if ( response ?. status === 'success' ) {
67+ setValues ( {
68+ ...values ,
69+ ...response ?. data ,
70+ } ) ;
6971
70- setSuccess ( true ) ;
72+ setSuccess ( true ) ;
73+ } else {
74+ setError ( response ?. message ) ;
75+ }
7176 } )
7277 . catch ( ( err ) => {
7378 console . log ( 'An error occurred' , err ) ;
@@ -85,6 +90,13 @@ const ReviewScreen: React.FC<React.PropsWithChildren<CreateSubScreenProps>> = ({
8590 setValues = { setValues }
8691 navigate = { navigate }
8792 />
93+ ) : error ? (
94+ < ErrorSection
95+ values = { values }
96+ setValues = { setValues }
97+ navigate = { navigate }
98+ error = { error }
99+ />
88100 ) : (
89101 < >
90102 < div className = "px-5 lg:px-10" >
@@ -348,7 +360,7 @@ const SuccessSection: React.FC<CreateSubScreenProps> = ({ values }) => {
348360 </ p >
349361 </ div >
350362
351- < pre className = "flex flex-col gap-4 w-full bg-gray-100 rounded-lg p-5" >
363+ < pre className = "flex flex-col gap-4 w-full bg-gray-100 dark:bg-gray-900/50 rounded-lg p-5" >
352364 < div className = "flex items-center gap-2" >
353365 < div > $</ div >
354366 < div >
@@ -387,4 +399,28 @@ const SuccessSection: React.FC<CreateSubScreenProps> = ({ values }) => {
387399 ) ;
388400} ;
389401
402+ const ErrorSection : React . FC <
403+ CreateSubScreenProps & { error : boolean | string }
404+ > = ( { error, navigate } ) => {
405+ return (
406+ < div className = "px-5 lg:px-10 h-[80vh] flex flex-col justify-center items-center" >
407+ < div className = "mb-8 text-center " >
408+ < h2 className = "text-2xl" > Your app could not be created!</ h2 >
409+ < p className = "text-gray-500" > { error } </ p >
410+ </ div >
411+
412+ < div className = "mt-8" >
413+ < button
414+ className = "bg-green-800 px-5 py-2 rounded-md text-white"
415+ onClick = { ( ) => {
416+ navigate ( 'name' ) ;
417+ } }
418+ >
419+ Go Back
420+ </ button >
421+ </ div >
422+ </ div >
423+ ) ;
424+ } ;
425+
390426export default ReviewScreen ;
0 commit comments