import { Link, useParams } from "react-router-dom";
import { useQuery } from "@tanstack/react-query";
import { useEffect } from "react";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { apiClient } from "@/lib/api-client";
import { DiagnosisResultView } from "../components/diagnose-result-view";
import { diseaseCatalogSeed } from "@zeavis/shared"; // Pastikan jalur import ini benar
export function DiagnosisDetailPage() {
const { id } = useParams();
// Scroll to top when diagnosis ID changes
useEffect(() => {
window.scrollTo({
top: 0,
behavior: "smooth",
});
}, [id]);
const query = useQuery({
queryKey: ["diagnosis", id],
queryFn: () => apiClient.getDiagnosis(id!),
enabled: Boolean(id),
});
if (query.isLoading)
return (
Memuat diagnosis...
);
if (query.error || !query.data)
return (
Diagnosis tidak ditemukan
);
const diagnosis = query.data;
// Fallback logic for image and medicine recommendations
const finalImageUrl =
diagnosis.imageUrl || "/src/assets/images/placeholder-image.png";
const seedData = diagnosis.disease
? diseaseCatalogSeed.find(
(seed) => seed.commonName === diagnosis.disease?.commonName,
)
: null;
const finalMedicines =
(diagnosis.disease as any)?.medicineRecommendations ||
seedData?.medicineRecommendations ||
[];
return (
Analisis & Modul Edukasi
Hasil deteksi AI dan panduan edukasi
{diagnosis.status === "needs_review" && (
Catatan: Hasil ini masih sementara karena tingkat
keyakinan (confidence) di bawah standar minimum.
)}
{diagnosis.failureReason && (
Gagal Memproses: {diagnosis.failureReason}
)}
{diagnosis.predictions && diagnosis.predictions.length > 0 && (
Semua Prediksi Model
Tebakan alternatif lain dari sistem AI ZeaVis
{diagnosis.predictions
.sort((a, b) => a.rank - b.rank)
.map((pred) => (
{pred.modelLabel}
{(pred.confidence * 100).toFixed(1)}%
))}
)}
{/* Expert Review Section */}
{diagnosis.latestReview && (
Catatan Pakar Agronomi
Ditinjau oleh: {diagnosis.latestReview.expert.name}
"{diagnosis.latestReview.notes}"
)}
);
}