testapi/resources/js/pages/auth/ResetPassword.vue

82 lines
2.8 KiB
Vue

<script setup lang="ts">
import InputError from '@/components/InputError.vue';
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
import { Label } from '@/components/ui/label';
import AuthLayout from '@/layouts/AuthLayout.vue';
import { Head, useForm } from '@inertiajs/vue3';
import { LoaderCircle } from 'lucide-vue-next';
interface Props {
token: string;
email: string;
}
const props = defineProps<Props>();
const form = useForm({
token: props.token,
email: props.email,
password: '',
password_confirmation: '',
});
const submit = () => {
form.post(route('password.store'), {
onFinish: () => {
form.reset('password', 'password_confirmation');
},
});
};
</script>
<template>
<AuthLayout title="Tilbakestill passord" description="Vennligst oppgi ditt nye passord under">
<Head title="Tilbakestill passord" />
<form @submit.prevent="submit">
<div class="grid gap-6">
<div class="grid gap-2">
<Label for="email">Epost</Label>
<Input id="email" type="email" name="email" autocomplete="email" v-model="form.email" class="mt-1 block w-full" readonly />
<InputError :message="form.errors.email" class="mt-2" />
</div>
<div class="grid gap-2">
<Label for="password">Passord</Label>
<Input
id="password"
type="password"
name="password"
autocomplete="new-password"
v-model="form.password"
class="mt-1 block w-full"
autofocus
placeholder="Passord"
/>
<InputError :message="form.errors.password" />
</div>
<div class="grid gap-2">
<Label for="password_confirmation"> Bekreft passord </Label>
<Input
id="password_confirmation"
type="password"
name="password_confirmation"
autocomplete="new-password"
v-model="form.password_confirmation"
class="mt-1 block w-full"
placeholder="Bekreft passord"
/>
<InputError :message="form.errors.password_confirmation" />
</div>
<Button type="submit" class="mt-4 w-full" :disabled="form.processing">
<LoaderCircle v-if="form.processing" class="h-4 w-4 animate-spin" />
Tilbakestill passord
</Button>
</div>
</form>
</AuthLayout>
</template>