Files
solidtime/resources/js/Pages/Auth/ConfirmPassword.vue
2026-02-10 12:22:53 +01:00

66 lines
2.0 KiB
Vue

<script setup lang="ts">
import { ref } from 'vue';
import { Head, useForm } from '@inertiajs/vue3';
import AuthenticationCard from '@/Components/AuthenticationCard.vue';
import AuthenticationCardLogo from '@/Components/AuthenticationCardLogo.vue';
import { Field, FieldLabel, FieldError } from '@/packages/ui/src/field';
import PrimaryButton from '@/packages/ui/src/Buttons/PrimaryButton.vue';
import TextInput from '@/packages/ui/src/Input/TextInput.vue';
const form = useForm({
password: '',
});
const passwordInput = ref<HTMLInputElement | null>(null);
const submit = () => {
form.post(route('password.confirm'), {
onFinish: () => {
form.reset();
passwordInput.value?.focus();
},
});
};
</script>
<template>
<Head title="Secure Area" />
<AuthenticationCard>
<template #logo>
<AuthenticationCardLogo />
</template>
<div class="mb-4 text-sm text-text-secondary">
This is a secure area of the application. Please confirm your password before
continuing.
</div>
<form @submit.prevent="submit">
<Field>
<FieldLabel for="password">Password</FieldLabel>
<TextInput
id="password"
ref="passwordInput"
v-model="form.password"
type="password"
class="block w-full"
required
autocomplete="current-password"
autofocus />
<FieldError v-if="form.errors.password">{{ form.errors.password }}</FieldError>
</Field>
<div class="flex justify-end mt-4">
<PrimaryButton
class="ms-4"
:class="{ 'opacity-25': form.processing }"
:disabled="form.processing">
Confirm
</PrimaryButton>
</div>
</form>
</AuthenticationCard>
</template>