Component Inventory — Duplicate Detection (Lovable-Ready)
Scope: Evaluator Dashboard → Duplicate Hazard → List Hazard & Duplicate Cluster + Semantic Review modal
1) GLOBAL / SHARED COMPONENTS
1.1 Page Header — EvaluatorDashboardHeader
Type: Header / Sticky
Props:
title: “Evaluator Dashboard” env_badge: DEV / UAT / PROD breadcrumbs: Evaluator → Duplicate Hazard → Duplicate Cluster actions: none / role-based 1.2 Global Filter Bar — GlobalFilterBar
Type: Toolbar
Components inside:
DropdownFilter (Duplicate Status: Potential / Confirmed) DropdownFilter (Confidence: High / Medium / Low) SearchInput (Report ID / Cluster ID / Pelapor) States:
2) DUPLICATE HAZARD — SUBTAB: LIST HAZARD
2.1 Hazard Table — HazardListTable
Type: Table
Columns:
Deskripsi (truncate 2 lines) ClusterBadge (C-001 / C-002) StageBadge (Geo / Lexical / Semantic / Final) Row Actions:
States:
2.2 Hazard Quick Preview Panel — HazardPreviewPanel (optional)
Type: Side panel
Content:
CTA: Open Semantic Review 3) DUPLICATE HAZARD — SUBTAB: DUPLICATE CLUSTER (CORE)
3.1 Cluster Card Grid — DuplicateClusterGrid
Type: Card Grid (responsive 3–4 columns)
3.2 Cluster Card — DuplicateClusterCard
Type: Card
Props:
confidence: High / Medium / Low status: Potential / Confirmed representative_snippet: teks ringkas origin_tags: GCL-001, LCL-001 Actions:
Visual States:
confirmed (red/green sesuai policy) awaiting_decision (badge) 3.3 Cluster Focus Header — ClusterFocusHeader
Type: Sticky sub-header
Content:
Chips: 12 laporan, Site BMO 1, High Confidence 3.4 Cluster Member List — ClusterMemberList
Type: List / Compact Table
Columns:
Row Action:
Compare with Representative 3.5 Cluster Decision Panel — ClusterDecisionPanel
Type: Action Panel (right / bottom)
Buttons (role-based):
Confirm Duplicate (Cluster) States:
3.6 Cluster Audit Log — ClusterAuditLog
Type: Timeline
Item Fields:
4) MODAL — SEMANTIC REVIEW (CLUSTER-AWARE)
4.1 Semantic Review Modal — SemanticReviewModal
Type: Full-height modal / drawer
Header:
“Semantic Review — Cluster C-001” 4.2 Comparison Header — SemanticComparisonSummary
Content:
Score summary: A: 85% | B: 80% 4.3 Split Compare Panel — SemanticCompareSplitView
Layout: 2 columns
A) Report Panel — SemanticReportPanel
Content:
4.4 Semantic Analysis Box — SemanticAnalysisBox
Content:
Section: “Sinyal Visual Terdeteksi” Section: “Interpretasi Makna” 4.5 Semantic Decision Bar — SemanticDecisionBar
Buttons (cluster-aware wording):
Confirm as Duplicate (Cluster C-001) 5) STATUS & FE STATE BINDING (FOR LOVABLE)
5.1 UI State Flags
cluster.status = potential | confirmed | finalized
report.duplicate_status = potential_duplicate | confirmed_duplicate | non_duplicate
report.is_representative = true | false
5.2 Conditional Rendering Rules
Confirm Duplicate → only if cluster.status = potential Merge / Split → supervisor only Semantic Review → read-only if cluster.status = finalized 6) EMPTY / EDGE STATES
6.1 Empty Cluster
“Belum ada cluster duplicate yang membutuhkan keputusan.”
6.2 No Similar Report
“Tidak ditemukan laporan dengan kemiripan semantik signifikan.”
6.3 No Image Banner
“Laporan ini tidak memiliki gambar pendukung.”