Files
speckle-server/packages/frontend-2/components/auth/PasswordResetPanel.vue
T
Kristaps Fabians Geikins c67f6d9c92 feat: clearer email verification flow & related error messages (#1904)
* fix: fe2 auth error page + various minor UI bugs

* clean up & reporting failing email to fe

* new mutation to resend verification as guest

* email text updates

* fixing issues brought up by agi

* more text fixes

* swapping out space-XXX for gap-XXX
2023-12-15 13:09:26 +02:00

48 lines
1.5 KiB
Vue

<template>
<LayoutPanel form class="mx-auto max-w-screen-md" @submit="onSubmit">
<template #header>
<span class="h5 font-medium leading-7">Reset your account password</span>
</template>
<template #default>
<div class="flex flex-col space-y-8">
<div>
Type in the email address you used, so we can verify your account. We will
send you instructions on how to reset your password.
</div>
<div>
<FormTextInput
name="resetEmail"
type="email"
placeholder="email@example.com"
:rules="emailRules"
/>
</div>
</div>
</template>
<template #footer>
<div class="flex flex-col gap-y-2">
<FormButton submit full-width :disabled="loading">Send reset e-mail</FormButton>
<FormButton color="secondary" :to="homeRoute">Go Home</FormButton>
</div>
</template>
</LayoutPanel>
</template>
<script setup lang="ts">
import { useForm } from 'vee-validate'
import { homeRoute } from '~/lib/common/helpers/route'
import { usePasswordReset } from '~~/lib/auth/composables/passwordReset'
import { isEmail, isRequired } from '~~/lib/common/helpers/validation'
type FormValues = { resetEmail: string }
const { handleSubmit } = useForm<FormValues>()
const { sendResetEmail } = usePasswordReset()
const emailRules = [isEmail, isRequired]
const loading = ref(false)
const onSubmit = handleSubmit(
async ({ resetEmail }) => await sendResetEmail(resetEmail)
)
</script>