File tree Expand file tree Collapse file tree 2 files changed +26
-12
lines changed
exercises/user_signup/solutions/codely_next-typescript-middle-out/src/components Expand file tree Collapse file tree 2 files changed +26
-12
lines changed Original file line number Diff line number Diff line change 1- import React , { useState } from "react" ;
2- import { signUpUser } from "../services/signUpUser" ;
31import { Input } from "./Input" ;
4-
5- type FormStatus = "success" | "error" | "initial"
2+ import { useSignUpUser } from "./useSignUpUser" ;
63
74export function SignUpForm ( ) {
8- const [ formStatus , setFormStatus ] = useState < FormStatus > ( "initial" )
5+ const { formStatus, signUp } = useSignUpUser ( ) ;
96
107 async function handleSubmit ( ev : React . FormEvent ) {
118 ev . preventDefault ( )
129 const data = new FormData ( ev . target as HTMLFormElement ) ;
1310 const entries = Object . fromEntries ( data . entries ( ) ) as { [ key : string ] : string } ;
1411
15- return signUpUser ( { name : entries . name , email : entries . email } )
16- . then ( ( ) => {
17- setFormStatus ( "success" ) ;
18- } )
19- . catch ( ( ) => {
20- setFormStatus ( "error" ) ;
21- } ) ;
12+ return signUp ( { name : entries . name , email : entries . email } ) ;
2213 }
2314
2415 if ( formStatus === "success" ) {
Original file line number Diff line number Diff line change 1+ import { useState } from "react" ;
2+ import { signUpUser } from "../services/signUpUser" ;
3+
4+ type FormStatus = "success" | "error" | "initial"
5+
6+ export function useSignUpUser ( ) {
7+ const [ formStatus , setFormStatus ] = useState < FormStatus > ( "initial" )
8+
9+ function signUp ( { name, email} : { name : string ; email : string ; } ) {
10+ return signUpUser ( { name, email} )
11+ . then ( ( ) => {
12+ setFormStatus ( "success" ) ;
13+ } )
14+ . catch ( ( ) => {
15+ setFormStatus ( "error" ) ;
16+ } ) ;
17+ }
18+
19+ return {
20+ signUp,
21+ formStatus
22+ }
23+ }
You can’t perform that action at this time.
0 commit comments