-
+
Proyek Urgensi
@@ -231,7 +231,7 @@ export function DashboardPage() {
{/* Mission section */}
-
+
Misi Platform
@@ -272,7 +272,7 @@ export function DashboardPage() {
-
+
Penyakit yang Dapat Dideteksi
@@ -322,7 +322,7 @@ export function DashboardPage() {
{/* Scan quick access */}
-
+
Siap Mendeteksi Penyakit Daun?
diff --git a/apps/web/src/pages/diagnoses-page.tsx b/apps/web/src/pages/diagnoses-page.tsx
index 86f9ffc..9f33d63 100644
--- a/apps/web/src/pages/diagnoses-page.tsx
+++ b/apps/web/src/pages/diagnoses-page.tsx
@@ -75,10 +75,10 @@ export function DiagnosesPage() {
-
- Manajemen Diagnosis
+
Diagnosa Tanaman
+
+ Lihat hasil diagnosa dari scan yang telah dilakukan
-
Daftar Diagnosis
-
-
-
-
-
+
+
+
-
-
+
+
-
- Total: {filtered.length}
-
-
+
+ Total: {filtered.length}
+
+
- {query.isLoading ? (
-
- Memuat diagnosis...
-
- ) : query.isError ? (
-
- Gagal memuat diagnosis
-
- ) : filtered.length === 0 ? (
-
-
- Tidak ada diagnosis sesuai filter
-
- {diagnoses.length === 0 && (
-
- Mulai dengan{" "}
-
- melakukan scan daun
-
- .
-
- )}
-
- ) : (
-
- {filtered.map((d) => (
-
-
+ {query.isLoading ? (
+
+ Memuat diagnosis...
+
+ ) : query.isError ? (
+
+ Gagal memuat diagnosis
+
+ ) : filtered.length === 0 ? (
+
+
+ Tidak ada diagnosis sesuai filter
+
+ {diagnoses.length === 0 && (
+
+ Mulai dengan{" "}
+
+ melakukan scan daun
+
+ .
+
+ )}
+
+ ) : (
+
+ {filtered.map((d) => (
+
+
@@ -192,8 +190,6 @@ export function DiagnosesPage() {
))}
)}
-
-
);
}
diff --git a/apps/web/src/pages/diagnosis-detail-page.tsx b/apps/web/src/pages/diagnosis-detail-page.tsx
index c9f45e6..c2c56ff 100644
--- a/apps/web/src/pages/diagnosis-detail-page.tsx
+++ b/apps/web/src/pages/diagnosis-detail-page.tsx
@@ -14,23 +14,22 @@ export function DiagnosisDetailPage() {
enabled: Boolean(id),
});
- if (query.isLoading) return Memuat diagnosis...;
- if (query.error || !query.data) return Diagnosis tidak ditemukan;
+ if (query.isLoading) return Memuat diagnosis...
;
+ if (query.error || !query.data) return Diagnosis tidak ditemukan
;
const diagnosis = query.data;
return (
-
-
-
+
+
Detail Diagnosis
-
{diagnosis.disease?.commonName ?? 'Diagnosis gagal'}
+
{diagnosis.disease?.commonName ?? 'Diagnosis gagal'}
-
+
@@ -99,6 +98,5 @@ export function DiagnosisDetailPage() {
)}
-
- );
-}
+ );
+ }
diff --git a/apps/web/src/pages/disease-detail-page.tsx b/apps/web/src/pages/disease-detail-page.tsx
index c0407eb..2bfe5a2 100644
--- a/apps/web/src/pages/disease-detail-page.tsx
+++ b/apps/web/src/pages/disease-detail-page.tsx
@@ -78,7 +78,7 @@ export function DiseaseDetailPage() {
-
{disease.commonName}
+
{disease.commonName}
{disease.label}
@@ -131,7 +131,7 @@ export function DiseaseDetailPage() {
-
+
diff --git a/apps/web/src/pages/expert-reviews-page.tsx b/apps/web/src/pages/expert-reviews-page.tsx
index a2f8117..cd8d0fe 100644
--- a/apps/web/src/pages/expert-reviews-page.tsx
+++ b/apps/web/src/pages/expert-reviews-page.tsx
@@ -1,24 +1,35 @@
-import { FormEvent, useMemo, useState } from 'react';
-import { useSearchParams } from 'react-router-dom';
-import { useMutation, useQueries, useQueryClient } from '@tanstack/react-query';
-import type { DiseaseSlug } 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';
-import { apiClient } from '@/lib/api-client';
+import { FormEvent, useMemo, useState } from "react";
+import { useSearchParams } from "react-router-dom";
+import { useMutation, useQueries, useQueryClient } from "@tanstack/react-query";
+import type { DiseaseSlug } 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";
+import { apiClient } from "@/lib/api-client";
export function ExpertReviewsPage() {
const [searchParams, setSearchParams] = useSearchParams();
- const selectedId = searchParams.get('diagnosis');
- const [verdict, setVerdict] = useState<'verified' | 'corrected'>('verified');
- const [correctedDiseaseSlug, setCorrectedDiseaseSlug] = useState
('');
- const [notes, setNotes] = useState('');
+ const selectedId = searchParams.get("diagnosis");
+ const [verdict, setVerdict] = useState<"verified" | "corrected">("verified");
+ const [correctedDiseaseSlug, setCorrectedDiseaseSlug] = useState<
+ DiseaseSlug | ""
+ >("");
+ const [notes, setNotes] = useState("");
const queryClient = useQueryClient();
const [reviewsQuery, diseasesQuery] = useQueries({
queries: [
- { queryKey: ['expert-reviews'], queryFn: () => apiClient.getExpertReviews() },
- { queryKey: ['diseases'], queryFn: () => apiClient.getDiseases() },
+ {
+ queryKey: ["expert-reviews"],
+ queryFn: () => apiClient.getExpertReviews(),
+ },
+ { queryKey: ["diseases"], queryFn: () => apiClient.getDiseases() },
],
});
@@ -33,15 +44,18 @@ export function ExpertReviewsPage() {
mutationFn: () =>
apiClient.reviewDiagnosis(selected!.id, {
verdict,
- correctedDiseaseSlug: verdict === 'corrected' ? correctedDiseaseSlug || undefined : undefined,
+ correctedDiseaseSlug:
+ verdict === "corrected"
+ ? correctedDiseaseSlug || undefined
+ : undefined,
notes,
}),
onSuccess: () => {
- setNotes('');
- setVerdict('verified');
- setCorrectedDiseaseSlug('');
- queryClient.invalidateQueries({ queryKey: ['expert-reviews'] });
- queryClient.invalidateQueries({ queryKey: ['dashboard-summary'] });
+ setNotes("");
+ setVerdict("verified");
+ setCorrectedDiseaseSlug("");
+ queryClient.invalidateQueries({ queryKey: ["expert-reviews"] });
+ queryClient.invalidateQueries({ queryKey: ["dashboard-summary"] });
},
});
@@ -55,10 +69,13 @@ export function ExpertReviewsPage() {
return (
-
+
-
Review Pakar
-
Diagnosis Menunggu Review
+
Review Pakar
+
+ Tinjau hasil diagnosa dari scan yang telah dilakukan dan berikan
+ feedback untuk meningkatkan akurasi sistem AI ZeaVis Edu
+
@@ -67,14 +84,20 @@ export function ExpertReviewsPage() {
Daftar Diagnosis
- {reviews.length}
+
+ {reviews.length}
+
{isLoading ? (
-
Memuat diagnosis...
+
+ Memuat diagnosis...
+
) : reviews.length === 0 ? (
-
Tidak ada diagnosis yang menunggu review
+
+ Tidak ada diagnosis yang menunggu review
+
) : (
reviews.map((review) => (