"use client"; import { useState } from "react"; import Image from "next/image"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from "@/components/ui/dialog"; import { X } from "lucide-react"; import { updateGalery } from "@/service/galery"; export function DialogUpdateGaleri({ open, onClose, data, onUpdated }: any) { const [title, setTitle] = useState(data.title); const [desc, setDesc] = useState(data.desc); const [files, setFiles] = useState(data.files || []); const [newFiles, setNewFiles] = useState([]); const [loading, setLoading] = useState(false); const handleUpload = (e: React.ChangeEvent) => { const uploaded = Array.from(e.target.files || []) as File[]; setNewFiles((prev) => [...prev, ...uploaded]); }; const removeOldFile = (id: number) => { setFiles(files.filter((f: any) => f.id !== id)); }; const removeNewFile = (index: number) => { setNewFiles(newFiles.filter((_, i) => i !== index)); }; const handleSubmit = async () => { try { setLoading(true); const form = new FormData(); form.append("title", title); form.append("desc", desc); // file lama yang masih dipakai form.append("old_files", JSON.stringify(files.map((f: any) => f.id))); // file baru newFiles.forEach((file) => { form.append("files", file); }); const res = await updateGalery(data.id, form); setLoading(false); onClose(); if (onUpdated) onUpdated(); // refresh list } catch (error) { setLoading(false); console.error("Error update:", error); } }; return ( Edit Banner {/* Form */}
{/* Title */}
setTitle(e.target.value)} required />
{/* Desc */}