diff --git a/app/(modules)/admin/mapset-upload/_components/step-4-validate.tsx b/app/(modules)/admin/mapset-upload/_components/step-4-validate.tsx
index 5320a0e..897cb7a 100644
--- a/app/(modules)/admin/mapset-upload/_components/step-4-validate.tsx
+++ b/app/(modules)/admin/mapset-upload/_components/step-4-validate.tsx
@@ -62,6 +62,7 @@ export default function StepValidate() {
const table = state.result?.data;
const data = {
title: metadata.title,
+ path: state.result?.data.tmp_path,
columns: table.columns,
rows: table.preview,
author: metadata,
diff --git a/app/(modules)/admin/mapset-upload/_components/step-5-success.tsx b/app/(modules)/admin/mapset-upload/_components/step-5-success.tsx
index fadac51..5aa8913 100644
--- a/app/(modules)/admin/mapset-upload/_components/step-5-success.tsx
+++ b/app/(modules)/admin/mapset-upload/_components/step-5-success.tsx
@@ -264,7 +264,7 @@ export default function StepSuccess() {
{/* Tombol Upload Lagi (Reset Context) */}
diff --git a/app/(modules)/admin/mapset-upload/_context/upload-context.tsx b/app/(modules)/admin/mapset-upload/_context/upload-context.tsx
index 390a1b0..04bea61 100644
--- a/app/(modules)/admin/mapset-upload/_context/upload-context.tsx
+++ b/app/(modules)/admin/mapset-upload/_context/upload-context.tsx
@@ -50,7 +50,12 @@ function UploadProviderContent({ children }: { children: React.ReactNode }) {
useEffect(() => {
const stepParam = searchParams.get("step") as UploadStepType;
const validSteps: UploadStepType[] = ["UPLOAD", "PDF_VIEWER", "TABLE_PICKER", "VALIDATE", "SUCCESS"];
-
+
+ // if (state.step === "SUCCESS" && stepParam !== "SUCCESS") {
+ // reset();
+ // return;
+ // }
+
if (stepParam && validSteps.includes(stepParam)) {
if (stepParam !== "UPLOAD" && !state.file) {
router.replace(pathname);
@@ -63,11 +68,6 @@ function UploadProviderContent({ children }: { children: React.ReactNode }) {
}
}, [searchParams, state.file, pathname, router]);
- const reset = () => {
- setState(initialState);
- router.push(pathname);
- };
-
// 2. STATE -> URL (Handle Navigation)
// 🔥 Update Logic Navigation
const goToStep = (newStep: UploadStepType, options?: { replace?: boolean }) => {
@@ -89,6 +89,12 @@ function UploadProviderContent({ children }: { children: React.ReactNode }) {
setState((prev) => ({ ...prev, step: newStep }));
};
+
+ const reset = () => {
+ setState(initialState);
+ router.push(pathname);
+ };
+
return (
{children}
diff --git a/app/(modules)/admin/mapset-upload/_hooks/use-pdf-viewer.ts b/app/(modules)/admin/mapset-upload/_hooks/use-pdf-viewer.ts
index 252da88..bf64552 100644
--- a/app/(modules)/admin/mapset-upload/_hooks/use-pdf-viewer.ts
+++ b/app/(modules)/admin/mapset-upload/_hooks/use-pdf-viewer.ts
@@ -283,22 +283,28 @@ export function usePdfViewer() {
toast.warning("Harap pilih minimal 1 halaman untuk diproses.");
return;
}
+
setLoading(true);
try {
const res = await uploadApi.uploadFile(
state.file!,
- localSelectedPages,
- null,
+ localSelectedPages, // Kirim array halaman: [1, 2, 5]
+ null, // sheet null karena ini PDF
state.fileDesc
);
+
setState(prev => ({ ...prev, result: res }));
- if (res.tables && res.tables.length > 0) {
+
+ if (res.data.tables && res.data.tables.length > 0) {
goToStep("TABLE_PICKER");
- toast.success(`Ditemukan ${res.tables.length} tabel. Silakan pilih tabel.`);
- } else {
+ toast.success(`Ditemukan ${res.data.tables.length} tabel. Silakan pilih tabel.`);
+ } else if (!res.data.tables) {
goToStep("VALIDATE");
toast.info("Tabel tidak terdeteksi spesifik, lanjut ke validasi.");
+ } else {
+ toast.warning(res.message);
}
+
} catch (err: any) {
console.error(err);
toast.error(err.message || "Gagal memproses halaman PDF terpilih.");
diff --git a/app/(modules)/admin/mapset-upload/_hooks/use-upload.ts b/app/(modules)/admin/mapset-upload/_hooks/use-upload.ts
index c71cf10..1f2f62b 100644
--- a/app/(modules)/admin/mapset-upload/_hooks/use-upload.ts
+++ b/app/(modules)/admin/mapset-upload/_hooks/use-upload.ts
@@ -167,7 +167,6 @@ export function useUploadLogic() {
const handleSaveToDatabase = async (payload: any) => {
setLoading(true);
try {
-
// Panggil API
const res = await uploadApi.saveToDatabase(payload);
diff --git a/shared/services/map-upload.ts b/shared/services/map-upload.ts
index f2e6cc4..3397ce1 100644
--- a/shared/services/map-upload.ts
+++ b/shared/services/map-upload.ts
@@ -8,18 +8,21 @@ const uploadApi = {
if (sheet) formData.append("sheet", sheet);
formData.append("file_desc", fileDesc);
- return apiHelpers.post("/upload/file", formData, {
+ // return apiHelpers.post("/upload/file", formData, {
+ return apiHelpers.post("/pipeline/analyze", formData, {
headers: { "Content-Type": "multipart/form-data" },
});
},
processPdf: async (data: any, fileName: string, fileDesc: string): Promise => {
const payload = { ...data, fileName, fileDesc };
- return apiHelpers.post("/upload/process-pdf", payload);
+ // return apiHelpers.post("/upload/process-pdf", payload);
+ return apiHelpers.post("/pipeline/analyze/df", payload);
},
saveToDatabase: async (data: any): Promise => {
- return apiHelpers.post("/upload/to-postgis", data);
+ // return apiHelpers.post("/upload/to-postgis", data);
+ return apiHelpers.post("/pipeline/publish", data);
},
getStyles: async (): Promise => {