- Integrated toast notifications to display error messages when form submissions fail across various components, enhancing user feedback and experience. - Updated components including DeleteUser, FormDialog, ManageTwoFactor, TwoFactorRecoveryCodes, TwoFactorSetupModal, PayrollPeriodShow, EmployeeCreate, EmployeeEdit, CuttingCreate, CuttingEdit, PurchaseCreate, PurchaseEdit, RestockCreate, RestockEdit, TransactionCreate, TransactionEdit, Category management, Product management, Raw Material management, Role management, Settings, and Authentication pages.
76 lines
2.8 KiB
TypeScript
76 lines
2.8 KiB
TypeScript
// Components
|
|
import { Form, Head } from '@inertiajs/react';
|
|
import { toast } from 'sonner';
|
|
import { LoaderCircle } from 'lucide-react';
|
|
import InputError from '@/components/input-error';
|
|
import TextLink from '@/components/text-link';
|
|
import { Button } from '@/components/ui/button';
|
|
import { Input } from '@/components/ui/input';
|
|
import { Label } from '@/components/ui/label';
|
|
import { login } from '@/routes';
|
|
import { email } from '@/routes/password';
|
|
|
|
export default function ForgotPassword({ status }: { status?: string }) {
|
|
return (
|
|
<>
|
|
<Head title="Forgot password" />
|
|
|
|
{status && (
|
|
<div className="mb-4 text-center text-sm font-medium text-green-600">
|
|
{status}
|
|
</div>
|
|
)}
|
|
|
|
<div className="space-y-6">
|
|
<Form
|
|
{...email.form()}
|
|
onError={() => {
|
|
toast.error('Terjadi kesalahan saat menyimpan data. Silakan periksa kembali input Anda.');
|
|
}}
|
|
>
|
|
{({ processing, errors }) => (
|
|
<>
|
|
<div className="grid gap-2">
|
|
<Label htmlFor="email">Email address</Label>
|
|
<Input
|
|
id="email"
|
|
type="email"
|
|
name="email"
|
|
autoComplete="off"
|
|
autoFocus
|
|
placeholder="email@example.com"
|
|
/>
|
|
|
|
<InputError message={errors.email} />
|
|
</div>
|
|
|
|
<div className="my-6 flex items-center justify-start">
|
|
<Button
|
|
className="w-full"
|
|
disabled={processing}
|
|
data-test="email-password-reset-link-button"
|
|
>
|
|
{processing && (
|
|
<LoaderCircle className="h-4 w-4 animate-spin" />
|
|
)}
|
|
Email password reset link
|
|
</Button>
|
|
</div>
|
|
</>
|
|
)}
|
|
</Form>
|
|
|
|
<div className="space-x-1 text-center text-sm text-muted-foreground">
|
|
<span>Or, return to</span>
|
|
<TextLink href={login()}>log in</TextLink>
|
|
</div>
|
|
</div>
|
|
</>
|
|
);
|
|
}
|
|
|
|
ForgotPassword.layout = {
|
|
title: 'Forgot password',
|
|
description: 'Enter your email to receive a password reset link',
|
|
};
|