import { useUploadController } from "./controller_admin_upload";
import { useDispatch } from "react-redux";
import LoadingOverlay from "../../../components/LoadingOverlay";
import FileDropzone from "../../../components/FileDropzone";
import PdfPageSelector from "../../../components/PdfPageSelector";
import { Link } from "react-router-dom";
import { useEffect } from "react";
import { reset } from "../../../store/slices/uploadSlice";
export default function ViewsAdminUploadStep1() {
const dispatch = useDispatch();
const {
loading,
file,
result,
pdfPageCount,
selectedPages,
selectedTable,
sheetCount,
sheetNames,
selectedSheet,
setSelectedPages,
setSelectedTable,
setSelectedSheet,
handleFileSelect,
handleUpload,
handleNextPdf
} = useUploadController();
const handlePageSelection = (pages) => {
console.log("Halaman PDF yang dipilih:", pages);
// setSelectedPages(pages);
dispatch(setSelectedPages(pages));
};
const ext = file ? file.name.split(".").pop().toLowerCase() : "";
useEffect(() => {
dispatch(reset())
}, [])
return (
Upload Data
Panduan upload →
{/* Dropzone */}
{/* {!file && (
)} */}
{file && (
{/* Info File */}
📎
{file.name}
{ext === "pdf" && pdfPageCount && (
File PDF {pdfPageCount} halaman.
)}
{/* Selector Halaman (hanya untuk PDF dengan > 1 halaman) */}
{ext === "pdf" && pdfPageCount > 1 && (
)}
{(ext === "xlsx" || ext === "xls") && sheetCount > 1 && (
<>
{sheetNames.map((name, i) => (
- setSelectedSheet(name)}
className={`flex items-center gap-2 p-3 cursor-pointer hover:bg-blue-50 transition ${
selectedSheet === name ? "bg-blue-100 font-semibold" : ""
}`}
>
✅
{name}
))}
*Pilih sheet yang akan dimasukan
>
)}
{/* Tombol Upload */}
1) ? 'hidden' : 'block' }`}>
)}
{result && result.file_type === ".pdf" && result.tables?.length > 1 && (
Hasil Analisis Backend
{/*
{result.tables.map((t, i) => (
- setSelectedTable(t)}
className={`flex items-center gap-2 p-3 cursor-pointer hover:bg-blue-50 transition ${
selectedTable?.title === t.title ? "bg-blue-100 font-semibold" : ""
}`}
>
✅
{t.title}
))}
*/}
{result.tables.map((t, i) => (
- setSelectedTable(t)}
className={`group relative border border-gray-200 rounded-lg cursor-pointer overflow-hidden transition-all duration-200
hover:shadow-sm hover:border-blue-300 ${
selectedTable?.title === t.title ? "bg-blue-50 border-blue-400" : "bg-white"
}`}
>
{/* Header nama tabel */}
📄 Tabel {t.title}
✅
{/* Mini preview kolom */}
{t.columns?.map((col, idx) => (
|
{col}
|
))}
{/* Highlight bar animasi */}
))}
*Pilih tabel yang akan di proses ke database
)}
{result && result.file_type === ".pdf" && result.tables?.length == 0 && (
Tidak Ditemukan Tabel Valid
Pastikan file pdf berisi tabel yang memiliki kolom geometry dan bukan hasil scan.
)}
);
}