+ {query.isLoading ? (
+
+ Memuat diagnosis...
+
+ ) : query.isError ? (
+
+ Gagal memuat diagnosis
+
+ ) : filtered.length === 0 ? (
+
+
Tidak ada diagnosis sesuai filter
-
- ) : (
-
- {filtered.map((d) => (
-
-
-
-
-
-
-
- {d.disease?.commonName ?? "Unknown"}
-
-
- {d.predictedDiseaseSlug ?? ""}
-
-
-
-
-
-
+
+ {diagnoses.length === 0 && (
+
+ Mulai dengan{" "}
+
+ melakukan scan daun
+
+ .
+
+ )}
+
+ ) : (
+
+ {filtered.map((d) => (
+
+
+
+
+
+
+
+ {d.disease?.commonName ?? "Diagnosis gagal"}
+
+
+ {d.disease?.label ?? d.predictedDiseaseSlug}
+
-
-
-
- {new Date(d.createdAt).toLocaleString("id-ID")}
-
-
- Lihat detail
-
+
+
+
-
-
- ))}
-
- )}
-
-
-
-
+
+
+
+ {new Date(d.createdAt).toLocaleString("id-ID")}
+ {d.confidence !== null && (
+
+ • {(d.confidence * 100).toFixed(0)}%
+
+ )}
+
+
+ Lihat detail
+
+
+
+
+
+ ))}
+
+ )}
+
+
+
);
}
diff --git a/apps/web/src/pages/expert-reviews-page.tsx b/apps/web/src/pages/expert-reviews-page.tsx
index 98af3ce..48ae300 100644
--- a/apps/web/src/pages/expert-reviews-page.tsx
+++ b/apps/web/src/pages/expert-reviews-page.tsx
@@ -1,7 +1,7 @@
import { FormEvent, useMemo, useState } from 'react';
import { Link, useSearchParams } from 'react-router-dom';
import { useMutation, useQueries, useQueryClient } from '@tanstack/react-query';
-import type { DiseaseSlug } from '@zeavis/shared';
+import type { DiseaseSlug, DiagnosisStatus } from '@zeavis/shared';
import { Button } from '@/components/ui/button';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { DiagnosisStatusBadge } from '@/components/diagnosis-status-badge';
@@ -47,11 +47,24 @@ export function ExpertReviewsPage() {
await mutation.mutateAsync();
}
+ const statusLabel = (status: DiagnosisStatus) => {
+ switch (status) {
+ case 'ai_verified': return 'Terverifikasi AI';
+ case 'needs_review': return 'Menunggu Review';
+ case 'expert_verified': return 'Diverifikasi Pakar';
+ case 'expert_corrected': return 'Dikoreksi Pakar';
+ case 'failed': return 'Gagal';
+ }
+ };
+
return (