ConfirmPasswordPage.tsx 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { Form, Head } from '@inertiajs/react';
  2. import { LoaderCircle } from 'lucide-react';
  3. import ConfirmablePasswordController from '@/actions/App/Http/Controllers/Auth/ConfirmablePasswordController';
  4. import { InputError } from '@/common/InputError';
  5. import AuthLayout from '@/pages/layouts/AuthLayout';
  6. import { Button } from '@/shadcn/button';
  7. import { Input } from '@/shadcn/input';
  8. import { Label } from '@/shadcn/label';
  9. export default function ConfirmPasswordPage() {
  10. return (
  11. <AuthLayout
  12. title="Confirm your password"
  13. description="This is a secure area of the application. Please confirm your password before continuing."
  14. >
  15. <Head title="Confirm password" />
  16. <Form {...ConfirmablePasswordController.store.form()} resetOnSuccess={['password']}>
  17. {({ processing, errors }) => (
  18. <div className="space-y-6">
  19. <div className="grid gap-2">
  20. <Label htmlFor="password">Password</Label>
  21. <Input id="password" type="password" name="password" placeholder="Password" autoComplete="current-password" autoFocus />
  22. <InputError message={errors.password} />
  23. </div>
  24. <div className="flex items-center">
  25. <Button className="w-full" disabled={processing}>
  26. {processing && <LoaderCircle className="h-4 w-4 animate-spin" />}
  27. Confirm password
  28. </Button>
  29. </div>
  30. </div>
  31. )}
  32. </Form>
  33. </AuthLayout>
  34. );
  35. }