"use client" import { useParams, useRouter } from 'next/navigation'; import React, { useState } from 'react'; import toast from 'react-hot-toast'; import { funEditProject, funGetOneProjectById } from '../lib/api_project'; import { useShallowEffect } from '@mantine/hooks'; import { Box, Button, Input, rem, Skeleton, Stack, TextInput } from '@mantine/core'; import { LayoutNavbarNew, TEMA} from '@/module/_global'; import LayoutModal from '@/module/_global/layout/layout_modal'; import { useHookstate } from '@hookstate/core'; export default function EditTaskProject() { const router = useRouter() const [name, setName] = useState("") const [openModal, setOpenModal] = useState(false) const param = useParams<{ id: string }>() const [loading, setLoading] = useState(true) const tema = useHookstate(TEMA) const [touched, setTouched] = useState({ name: false, }); function onVerification() { if (name == "") return toast.error("Error! harus memasukkan judul Kegiatan") setOpenModal(true) } async function onSubmit() { try { const res = await funEditProject(param.id, { name }) if (res.success) { toast.success(res.message) router.push("./") } else { toast.error(res.message) } } catch (error) { console.error(error) toast.error("Gagal mengedit Kegiatan, coba lagi nanti") } } async function getOneData() { try { setLoading(true) const res = await funGetOneProjectById(param.id, 'data'); if (res.success) { setName(res.data.title); } else { toast.error(res.message); } setLoading(false); } catch (error) { console.error(error); toast.error("Gagal mendapatkan data Kegiatan, coba lagi nanti"); } finally { setLoading(false); } } useShallowEffect(() => { getOneData(); }, [param.id]) return ( {loading ? : { setName(e.target.value) setTouched({ ...touched, name: false }) }} error={ touched.name && ( name == "" ? "Judul Kegiatan Tidak Boleh Kosong" : null ) } onBlur={() => setTouched({ ...touched, name: true })} /> } {loading ? : } setOpenModal(false)} description="Apakah Anda yakin ingin mengedit Kegiatan ini?" onYes={(val) => { if (val) { onSubmit() } setOpenModal(false) }} /> ); }