40 lines
1.3 KiB
TypeScript
40 lines
1.3 KiB
TypeScript
"use client";
|
|
import { ShieldAlert } from "lucide-react";
|
|
|
|
export default function AccessDeniedCard({
|
|
title = "Accès refusé",
|
|
message = "Vous n'avez pas les habilitations nécessaires pour accéder à cette page.",
|
|
hint = "Contactez votre administrateur pour demander l'accès.",
|
|
supportEmail = "paie@odentas.fr",
|
|
}: {
|
|
title?: string;
|
|
message?: string;
|
|
hint?: string;
|
|
supportEmail?: string;
|
|
}) {
|
|
return (
|
|
<div className="max-w-2xl rounded-2xl border bg-white p-5 shadow-sm">
|
|
<div className="flex items-start gap-3">
|
|
<div className="mt-0.5 rounded-xl border bg-amber-50 border-amber-200 text-amber-700 p-2">
|
|
<ShieldAlert className="w-5 h-5" aria-hidden />
|
|
</div>
|
|
<div className="space-y-1">
|
|
<div className="font-semibold text-slate-800">{title}</div>
|
|
<div className="text-sm text-slate-600">{message}</div>
|
|
<div className="text-xs text-slate-500">
|
|
{hint} {supportEmail ? (
|
|
<>
|
|
Si besoin, écrivez-nous à {" "}
|
|
<a href={`mailto:${supportEmail}`} className="underline hover:text-slate-700">
|
|
{supportEmail}
|
|
</a>
|
|
.
|
|
</>
|
|
) : null}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|