ldc-groupe/resources/ts/back/Components/InputError.tsx

36 lines
1.1 KiB
TypeScript

// * Packages
import { AlertCircle } from "lucide-react";
import { usePage } from "@inertiajs/react";
// * Other
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert";
import useTrans from "@/hooks/use-translations";
export default function InputError({
all,
message,
}: {
all?: boolean;
message?: string;
}) {
const { errors } = usePage().props;
const errorsTrans = useTrans("back.errors");
let messages = {} as Array<string>;
if (message) {
messages = Object.values([message]);
} else if (Object.values(errors).length && all) {
messages = Object.values(errors);
}
if (messages.length) {
return (
<Alert variant="destructive" className="text-left mb-4">
<AlertCircle className="h-4 w-4" />
{all && <AlertTitle>{errorsTrans}</AlertTitle>}
<AlertDescription>
{messages.map((errorMessage) => {
return <p>{errorMessage}</p>;
})}
</AlertDescription>
</Alert>
);
}
}