Files
gridpilot.gg/apps/website/ui/ErrorActionButtons.tsx
2026-01-14 10:51:05 +01:00

55 lines
1.5 KiB
TypeScript

import React from 'react';
interface ErrorActionButtonsProps {
onRetry?: () => void;
onHomeClick: () => void;
showRetry?: boolean;
homeLabel?: string;
}
/**
* ErrorActionButtons
*
* Action buttons for error pages (Try Again, Go Home)
* Provides consistent styling and behavior.
* All navigation callbacks must be provided by the caller.
*/
export function ErrorActionButtons({
onRetry,
onHomeClick,
showRetry = false,
homeLabel = 'Drive home',
}: ErrorActionButtonsProps) {
if (showRetry && onRetry) {
return (
<div className="flex items-center justify-center gap-3 pt-2">
<button
type="button"
onClick={onRetry}
className="inline-flex items-center justify-center rounded-md bg-primary-blue px-4 py-2 text-sm font-medium text-white hover:bg-primary-blue/80 transition-colors"
>
Try again
</button>
<button
type="button"
onClick={onHomeClick}
className="inline-flex items-center justify-center rounded-md bg-iron-gray px-4 py-2 text-sm font-medium text-white hover:bg-iron-gray/80 transition-colors"
>
Go home
</button>
</div>
);
}
return (
<div className="pt-2">
<button
type="button"
onClick={onHomeClick}
className="inline-flex items-center justify-center rounded-md bg-primary-blue px-4 py-2 text-sm font-medium text-white hover:bg-primary-blue/80 transition-colors"
>
{homeLabel}
</button>
</div>
);
}