You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
1.0 KiB
JavaScript

import React from 'react'
import Link from 'next/link'
import Router from 'next/router'
import isEmail from 'validator/lib/isEmail'
import {FormController, Input, Button} from '~/components/form'
import useAccountRedirect from '~/hooks/useAccountRedirect'
export default function Register(){
useAccountRedirect()
return (
<FormController url="/api/users" afterSubmit={()=>Router.push('/account')}>
<h1>Register</h1>
<Input label="Email" type="text" name="email" validate={value=>isEmail(value)} hint="Enter a valid email address" />
<Input label="Password" type="password" name="password" validate={value=>(value.length >= 8)} hint="Password must be at least 8 characters long" />
<Input label="Repeat password" type="password" name="password2" validate={(value, fields)=>(value === fields.password.value)} hint="Passwords must match" />
<Button type="submit">Register</Button>
<p>Already have an account? <Link href="/login"><a>Login here</a></Link>.</p>
</FormController>
)
}