skl/resources/js/pages/auth/confirm-password.tsx

78 lines
2.5 KiB
TypeScript

import { FormEventHandler, useEffect } from "react";
import GuestLayout from "@/layouts/guest-layout";
import { Head, useForm } from "@inertiajs/react";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
} from "@/components/ui/card";
import { Label } from "@/components/ui/label";
import { Input } from "@/components/ui/input";
import { InputError } from "@/components/ui/input-error";
import { Button } from "@/components/ui/button";
export default function ConfirmPassword() {
const { data, setData, post, processing, errors, reset } = useForm({
password: "",
});
useEffect(() => {
return () => {
reset("password");
};
}, []);
const submit: FormEventHandler = (e) => {
e.preventDefault();
post(route("password.confirm"));
};
return (
<GuestLayout>
<Head title="Confirm Password" />
<form onSubmit={submit}>
<Card>
<CardHeader>
<CardDescription>
This is a secure area of the application. Please
confirm your password before continuing.
</CardDescription>
</CardHeader>
<CardContent>
<div className="mt-4">
<Label htmlFor="password">Password</Label>
<Input
id="password"
type="password"
name="password"
value={data.password}
className="mt-1 block w-full"
autoFocus={true}
onChange={(e) =>
setData("password", e.target.value)
}
/>
<InputError
message={errors.password}
className="mt-2"
/>
</div>
</CardContent>
<CardFooter className="flex items-center justify-end mt-4">
<Button className="ms-4" disabled={processing}>
Confirm
</Button>
</CardFooter>
</Card>
</form>
</GuestLayout>
);
}