verify/register ui improvements (#50)

This commit is contained in:
Michael Quigley 2022-09-20 16:27:18 -04:00
parent 073507e0e0
commit 27d1f390a5
No known key found for this signature in database
GPG Key ID: 9B60314A9DD20A62
3 changed files with 31 additions and 9 deletions

View File

@ -55,16 +55,16 @@ func (self *createAccountHandler) Handle(params identity.CreateAccountParams) mi
} }
if _, err := str.CreateAccountRequest(ar, tx); err != nil { if _, err := str.CreateAccountRequest(ar, tx); err != nil {
logrus.Error(err) logrus.Errorf("error creating account request for '%v': %v", params.Body.Email, err)
return identity.NewCreateAccountInternalServerError().WithPayload(rest_model_zrok.ErrorMessage(err.Error())) return identity.NewCreateAccountInternalServerError().WithPayload(rest_model_zrok.ErrorMessage(err.Error()))
} }
if err := tx.Commit(); err != nil { if err := tx.Commit(); err != nil {
logrus.Error(err) logrus.Errorf("error committing account request for '%v': %v", params.Body.Email, err)
return identity.NewCreateAccountInternalServerError().WithPayload(rest_model_zrok.ErrorMessage(err.Error())) return identity.NewCreateAccountInternalServerError().WithPayload(rest_model_zrok.ErrorMessage(err.Error()))
} }
if err := sendVerificationEmail(params.Body.Email, token, self.cfg); err != nil { if err := sendVerificationEmail(params.Body.Email, token, self.cfg); err != nil {
logrus.Error(err) logrus.Errorf("error sending verification email for '%v': %v", params.Body.Email, err)
return identity.NewCreateAccountInternalServerError().WithPayload(rest_model_zrok.ErrorMessage(err.Error())) return identity.NewCreateAccountInternalServerError().WithPayload(rest_model_zrok.ErrorMessage(err.Error()))
} }

View File

@ -4,7 +4,7 @@ import * as identity from './api/identity';
const Login = (props) => { const Login = (props) => {
const [email, setEmail] = useState(''); const [email, setEmail] = useState('');
const [password, setPassword] = useState(''); const [password, setPassword] = useState('');
const [failed, setFailed] = useState(); const [message, setMessage] = useState();
const errorMessage = <h2 className={"errorMessage"}>Login Failed!</h2>; const errorMessage = <h2 className={"errorMessage"}>Login Failed!</h2>;
@ -24,7 +24,7 @@ const Login = (props) => {
console.log('login succeeded', resp) console.log('login succeeded', resp)
} else { } else {
console.log('login failed') console.log('login failed')
setFailed(errorMessage); setMessage(errorMessage);
} }
}) })
.catch((resp) => { .catch((resp) => {
@ -36,7 +36,7 @@ const Login = (props) => {
<div className={"fullscreen"}> <div className={"fullscreen"}>
<img src={"ziggy.svg"} width={200}/> <img src={"ziggy.svg"} width={200}/>
<h1>zrok</h1> <h1>zrok</h1>
{failed} {message}
<form onSubmit={handleSubmit}> <form onSubmit={handleSubmit}>
<fieldset> <fieldset>
<legend>Log In</legend> <legend>Log In</legend>

View File

@ -5,11 +5,32 @@ import * as identity from "./api/identity";
const Proceed = (props) => { const Proceed = (props) => {
const [password, setPassword] = useState(''); const [password, setPassword] = useState('');
const [confirm, setConfirm] = useState(''); const [confirm, setConfirm] = useState('');
const [message, setMessage] = useState();
const passwordMismatchMessage = <h2 className={"errorMessage"}>Entered passwords do not match!</h2>
const registerFailed = <h2 className={"errorMessage"}>Account creation failed!</h2>
const handleSubmit = async e => { const handleSubmit = async e => {
e.preventDefault(); e.preventDefault();
console.log("submit", password, confirm) console.log("handleSubmit");
} if(confirm !== password) {
setMessage(passwordMismatchMessage);
} else {
identity.register({body: {"token": props.token, "password": password}})
.then(resp => {
if(!resp.error) {
console.log("resp", resp)
setMessage(undefined);
} else {
setMessage(registerFailed);
}
})
.catch(resp => {
console.log("resp", resp);
setMessage(registerFailed);
});
}
};
return ( return (
<div className={"fullscreen"}> <div className={"fullscreen"}>
@ -26,6 +47,7 @@ const Proceed = (props) => {
</p> </p>
</fieldset> </fieldset>
</form> </form>
{message}
</div> </div>
) )
} }
@ -67,7 +89,7 @@ const Register = () => {
let step; let step;
if(!failed) { if(!failed) {
step = <Proceed email={email}/> step = <Proceed email={email} token={token}/>
} else { } else {
step = <Failed /> step = <Failed />
} }