import { AlertCircle, WifiOff } from "lucide-react"; import { Button } from "@/components/ui/button"; type RemitDrawerErrorProps = { kind: "not_found" | "network"; onRetry?: () => void; onClose: () => void; }; const COPY = { not_found: { eyebrow: "NOT FOUND", message: "This remittance doesn't exist or has been removed.", }, network: { eyebrow: "CONNECTION", message: "Couldn't reach the server. Check your connection and try again.", }, } as const; /** * Error state for the remittance detail drawer (RemitDrawer). * * Two shapes — `not_found` (the remit id in the URL doesn't resolve on * the server, e.g. a stale deep link) and `network` (the request * failed). The not_found variant has no retry affordance (retrying won't * help), the network variant does when `onRetry` is supplied. * * Visual twin of `ClaimDrawerError` so the two drawers feel like one * component family — same icon size, same eyebrow color, same button * spacing. */ export function RemitDrawerError({ kind, onRetry, onClose, }: RemitDrawerErrorProps) { const { eyebrow, message } = COPY[kind]; const Icon = kind === "network" ? WifiOff : AlertCircle; return (
{eyebrow}

{message}

{kind === "network" && onRetry ? ( ) : null}
); }