Skip to content

Commit c68cbbe

Browse files
Garvit SharmaGarvit Sharma
authored andcommitted
fix(frontend): remove unused import and restore ApiError styles
1 parent 7ac2388 commit c68cbbe

3 files changed

Lines changed: 18 additions & 13 deletions

File tree

frontend/src/components/ui/ApiError.tsx

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,28 @@
11
import { AlertCircle, X } from "lucide-react";
2-
import { useState } from "react";
2+
33

44
interface ApiErrorProps {
5-
message: string;
5+
message: string | null;
6+
onDismiss: () => void;
67
}
78

8-
export function ApiError({ message }: ApiErrorProps) {
9-
const [visible, setVisible] = useState(true);
10-
11-
if (!visible) return null;
9+
export function ApiError({ message, onDismiss }: ApiErrorProps) {
10+
if (!message) return null;
1211

1312
return (
14-
<div className="w-full border border-red-500/40 bg-red-900/20 text-red-200 px-4 py-3 rounded-lg flex items-start justify-between gap-3">
13+
<div role="alert" aria-live="assertive" className="w-full border border-red-500/40 bg-red-900/20 text-red-200 px-4 py-3 rounded-lg flex items-start justify-between gap-3">
1514
<div className="flex items-start gap-2">
1615
<AlertCircle className="w-5 h-5 mt-0.5" />
17-
<p className="text-sm">{message}</p>
16+
17+
<p className="text-sm break-words">{message}</p>
1818
</div>
1919

20-
<button onClick={() => setVisible(false)}>
21-
<X className="w-4 h-4 hover:text-red-400" />
20+
<button
21+
onClick={onDismiss}
22+
aria-label="Dismiss error"
23+
className="cursor-pointer hover:text-red-400 transition-colors"
24+
>
25+
<X className="w-4 h-4" />
2226
</button>
2327
</div>
2428
);

frontend/src/pages/NewAnalysis.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ export default function NewAnalysis() {
6464
return
6565
}
6666

67-
setBusy(true)
67+
6868
setResultRun(null)
6969
setResultPayload(null)
7070

@@ -100,7 +100,7 @@ export default function NewAnalysis() {
100100

101101
return (
102102
<div className="max-w-4xl mx-auto px-6 py-8 space-y-8">
103-
{error && (<div className="mb-4"><ApiError message={error} /></div>)}
103+
<ApiError message={error} onDismiss={() => setError(null)} />
104104

105105
{/* Step 1 — Analysis Type */}
106106
<section>

frontend/src/pages/Upload.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export default function Upload() {
5959
const handleUpload = async () => {
6060
if (!file) return
6161
setBusy(true)
62+
setError(null);
6263
setUploadProgress(0)
6364

6465
try {
@@ -88,7 +89,7 @@ export default function Upload() {
8889

8990
return (
9091
<div className="max-w-3xl mx-auto px-6 py-8 space-y-6">
91-
{error && (<ApiError message={error} />)}
92+
<ApiError message={error} onDismiss={() => setError(null)} />
9293
{/* Drop Zone */}
9394
<div
9495
onDragOver={(e) => { e.preventDefault(); setDragging(true) }}

0 commit comments

Comments
 (0)