50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
'use client';
|
|
|
|
import { Button } from '@/ui/Button';
|
|
import { Icon } from '@/ui/Icon';
|
|
import { Group } from '@/ui/Group';
|
|
import { Home, LifeBuoy, RefreshCw } from 'lucide-react';
|
|
import React from 'react';
|
|
|
|
interface RecoveryActionsProps {
|
|
onRetry: () => void;
|
|
onHome: () => void;
|
|
}
|
|
|
|
/**
|
|
* RecoveryActions
|
|
*
|
|
* Provides primary and secondary recovery paths for the user.
|
|
* Part of the 500 route redesign.
|
|
*/
|
|
export function RecoveryActions({ onRetry, onHome }: RecoveryActionsProps) {
|
|
return (
|
|
<Group gap={3} justify="center" wrap fullWidth>
|
|
<Button
|
|
variant="primary"
|
|
onClick={onRetry}
|
|
icon={<Icon icon={RefreshCw} size={4} />}
|
|
>
|
|
Retry Session
|
|
</Button>
|
|
<Button
|
|
variant="secondary"
|
|
onClick={onHome}
|
|
icon={<Icon icon={Home} size={4} />}
|
|
>
|
|
Return to Pits
|
|
</Button>
|
|
<Button
|
|
variant="secondary"
|
|
as="a"
|
|
href="https://support.gridpilot.com"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
icon={<Icon icon={LifeBuoy} size={4} />}
|
|
>
|
|
Contact Support
|
|
</Button>
|
|
</Group>
|
|
);
|
|
}
|