'use client' import CreateEditor from '@/app/admin/(dashboard)/_com/createEditor'; import perpustakaanDigitalState from '@/app/admin/(dashboard)/_state/pendidikan/perpustakaan-digital'; import colors from '@/con/colors'; import ApiFetch from '@/lib/api-fetch'; import { Box, Button, Group, Image, Paper, Select, Stack, Text, TextInput, Title, Tooltip } from '@mantine/core'; import { Dropzone } from '@mantine/dropzone'; import { IconArrowBack, IconPhoto, IconUpload, IconX } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import { toast } from 'react-toastify'; import { useProxy } from 'valtio/utils'; function CreateDataPerpustakaan() { const createState = useProxy(perpustakaanDigitalState.dataPerpustakaan) const router = useRouter(); const [previewImage, setPreviewImage] = useState(null); const [file, setFile] = useState(null); useEffect(() => { perpustakaanDigitalState.kategoriBuku.findMany.load(); }, []); const resetForm = () => { createState.create.form = { judul: "", deskripsi: "", imageId: "", kategoriId: "", }; setPreviewImage(null) setFile(null) }; const handleSubmit = async () => { if (!file) { return toast.warn("Pilih file gambar terlebih dahulu"); } const res = await ApiFetch.api.fileStorage.create.post({ file, name: file.name, }); const uploaded = res.data?.data; if (!uploaded?.id) { return toast.error("Gagal upload gambar"); } createState.create.form.imageId = uploaded.id; await createState.create.create(); resetForm(); router.push("/admin/pendidikan/perpustakaan-digital/data-perpustakaan") }; return ( {/* Tombol Kembali */} Tambah Data Perpustakaan {/* Judul */} Judul} placeholder='Masukkan judul' defaultValue={createState.create.form.judul} onChange={(val) => { createState.create.form.judul = val.target.value; }} required /> {/* Deskripsi */} Deskripsi { createState.create.form.deskripsi = val; }} /> {/* Kategori */}