diff --git a/app/(modules)/admin/mapset-upload/_components/step-2-pdf-viewer.tsx b/app/(modules)/admin/mapset-upload/_components/step-2-pdf-viewer.tsx
index 415a2b6..25c923b 100644
--- a/app/(modules)/admin/mapset-upload/_components/step-2-pdf-viewer.tsx
+++ b/app/(modules)/admin/mapset-upload/_components/step-2-pdf-viewer.tsx
@@ -1,34 +1,85 @@
// app/admin/upload/_components/step-2-pdf-viewer.tsx
"use client";
+import { useRef } from "react";
import { usePdfViewer } from "../_hooks/use-pdf-viewer";
import { Button } from "@/shared/components/ui/button";
-import { Checkbox } from "@/shared/components/ui/checkbox";
-import { Loader2 } from "lucide-react";
+import { Checkbox } from "@/shared/components/ui/checkbox";
+import { Loader2, CheckSquare, Square } from "lucide-react";
import { motion } from "framer-motion";
export default function StepPdfViewer() {
- const { pages, loading, localSelectedPages, toggleSelectPage, handleProcessPdf } = usePdfViewer();
+ const {
+ pages,
+ loading,
+ localSelectedPages,
+ toggleSelectPage,
+ handleProcessPdf,
+ // Fitur Baru dari Hook
+ handleSelectAll,
+ isAllSelected,
+ MAX_SELECT
+ } = usePdfViewer();
+
+ // 🔥 REF UNTUK SCROLLING
+ const pageRefs = useRef<{ [key: number]: HTMLDivElement | null }>({});
+
+ // Fungsi Helper Scroll
+ const scrollToPage = (pageNum: number) => {
+ const element = pageRefs.current[pageNum];
+ if (element) {
+ element.scrollIntoView({ behavior: "smooth", block: "start" });
+ }
+ };
+
+ const handleSidebarClick = (pageNum: number) => {
+ toggleSelectPage(pageNum);
+ // Auto scroll hanya jika kita mencentang (opsional: bisa juga scroll saat uncheck jika mau)
+ // Disini saya buat scroll terjadi setiap kali klik baris
+ scrollToPage(pageNum);
+ };
return (
{/* Sidebar Kiri */}
Pilih Halaman
-
+
+
+
+ Maksimal {MAX_SELECT} halaman.
+
+
+
{pages.map((p) => (
toggleSelectPage(p.pageNum)}
+ onClick={() => handleSidebarClick(p.pageNum)}
>
toggleSelectPage(p.pageNum)}
+ // onCheckedChange sudah dihandle oleh onClick parent div agar area klik lebih luas
+ className="pointer-events-none"
/>
- Halaman {p.pageNum}
+
+ Halaman {p.pageNum}
+
))}
@@ -53,16 +104,38 @@ export default function StepPdfViewer() {