72 lines
2.2 KiB
JavaScript
72 lines
2.2 KiB
JavaScript
import { routes, navigate } from '@redwoodjs/router'
|
|
import { useAuth } from '@redwoodjs/auth'
|
|
import { Form, Submit } from '@redwoodjs/forms'
|
|
import { toast } from '@redwoodjs/web/toast'
|
|
|
|
import InputTextForm from 'src/components/InputTextForm'
|
|
import MainLayout from 'src/layouts/MainLayout'
|
|
import Seo from 'src/components/Seo/Seo'
|
|
|
|
const UpdatePasswordPage = () => {
|
|
const { client } = useAuth()
|
|
const onSubmit = ({ password, confirm }) => {
|
|
if (password !== confirm || !password) {
|
|
toast.error("Passwords don't match, try again")
|
|
return
|
|
}
|
|
client
|
|
.currentUser()
|
|
.update({ password })
|
|
.then(() => {
|
|
toast.success('Password updated')
|
|
setTimeout(() => {
|
|
navigate(routes.home())
|
|
}, 500)
|
|
})
|
|
.catch(() => {
|
|
toast.error('Problem updating password')
|
|
})
|
|
}
|
|
return (
|
|
<MainLayout>
|
|
<Seo title="Update Password" description="Update Password" lang="en-US" />
|
|
|
|
<section className="max-w-md mx-auto mt-20">
|
|
<h2 className="text-xl text-ch-gray-300 pb-4">Reset Password</h2>
|
|
<Form onSubmit={onSubmit}>
|
|
<div
|
|
className="grid items-center gap-2"
|
|
style={{ gridTemplateColumns: 'auto 1fr' }}
|
|
>
|
|
<span className="capitalize text-ch-gray-300 text-sm">
|
|
password
|
|
</span>
|
|
<InputTextForm
|
|
className="text-xl"
|
|
name="password"
|
|
type="password"
|
|
validation={{
|
|
required: true,
|
|
}}
|
|
/>
|
|
<span className="capitalize text-ch-gray-300 text-sm">confirm</span>
|
|
<InputTextForm
|
|
className="text-xl"
|
|
name="confirm"
|
|
type="password"
|
|
validation={{
|
|
required: true,
|
|
}}
|
|
/>
|
|
<Submit className="col-start-2 mt-4 bg-ch-purple-400 bg-opacity-50 hover:bg-opacity-80 text-ch-gray-300 flex h-10 flex-shrink-0 justify-center items-center px-4 rounded">
|
|
Update
|
|
</Submit>
|
|
</div>
|
|
</Form>
|
|
</section>
|
|
</MainLayout>
|
|
)
|
|
}
|
|
|
|
export default UpdatePasswordPage
|