Files
ServerKit/frontend/src/components/ErrorState.jsx
T
Juan DenisandClaude Opus 4.8 ad9acb89e3 refactor(frontend): Phase 5 §8.5 — drop 142 unused React imports (JSX transform)
Per docs/plans/FRONTEND_UX_TAILWIND_CLEANUP_PLAN.md §8.5. React 18's automatic
JSX runtime makes 'import React' unnecessary; removed it from the 142 files
eslint flagged as 'React defined but never used' (named imports like useState
preserved). Driven by an eslint --format json pass so only flagged files were
touched.

Lint warnings: 1603 -> 1461 (0 errors). Verified: npm run build passes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 02:44:16 -04:00

32 lines
1.0 KiB
React

import { AlertTriangle, RefreshCw } from 'lucide-react';
import { Button } from '@/components/ui/button';
/**
* Consistent error state for pages and panels. Shows an icon, title, message,
* and optional retry action.
*
* <ErrorState
* title="Failed to load servers"
* message="The backend returned an error. Please try again."
* onRetry={loadData}
* />
*/
export function ErrorState({ title = 'Something went wrong', message, onRetry, className = '' }) {
return (
<div className={`sk-error-state ${className}`.trim()}>
<div className="sk-error-state__icon">
<AlertTriangle size={32} />
</div>
<h3 className="sk-error-state__title">{title}</h3>
{message && <p className="sk-error-state__message">{message}</p>}
{onRetry && (
<Button variant="outline" size="sm" onClick={onRetry}>
<RefreshCw size={14} /> Try again
</Button>
)}
</div>
);
}
export default ErrorState;