• loading state 생성

    const { register, handleSubmit, watch, formState: { errors } } = useForm({mode:"onChange"});
      const {errorFromSubmit,setErrorFromSubmit} = useState("")
      const [loading,setLoading] = useState(false)
      
      const password = useRef();
      password.current = watch("password");
    
  • loading state 컨트롤

    const onSubmit = async (data) => {
          try{
            setLoading(true);
            let createdUser = await firebase // eslint-disable-line no-unused-vars
            .auth()
            .createdUserWithEmailAndPassword(data.email,data.password);
            console.log('createdUser',createdUser);
            setLoading(false);
          }catch(error){
            setErrorFromSubmit(error.message)
            setLoading(false);
            setTimeout(()=>{
              setErrorFromSubmit("");
            },5000)
          }
    
      }
    
  • loading button UI

    <input *type*="submit" *value*={"submit"} *disabled*={loading}/>