diff --git a/src/app/admin/(dashboard)/ekonomi/program-kemiskinan/[id]/edit/page.tsx b/src/app/admin/(dashboard)/ekonomi/program-kemiskinan/[id]/edit/page.tsx index bda57c97..1d28ba64 100644 --- a/src/app/admin/(dashboard)/ekonomi/program-kemiskinan/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/ekonomi/program-kemiskinan/[id]/edit/page.tsx @@ -1,45 +1,125 @@ +/* eslint-disable react-hooks/exhaustive-deps */ 'use client' -import colors from '@/con/colors'; -import { Box, Button, Group, Paper, Stack, Text, TextInput, Title } from '@mantine/core'; -import { IconArrowBack } from '@tabler/icons-react'; -import { useRouter } from 'next/navigation'; +import EditEditor from '@/app/admin/(dashboard)/_com/editEditor'; +import programKemiskinanState from '@/app/admin/(dashboard)/_state/ekonomi/program-kemiskinan'; +import colors from '@/con/colors'; +import { + Box, + Button, + Group, + Paper, + Stack, + Text, + TextInput, + Title, +} from '@mantine/core'; +import { IconArrowBack } from '@tabler/icons-react'; +import { useRouter, useParams } from 'next/navigation'; +import { useEffect } from 'react'; +import { useProxy } from 'valtio/utils'; function EditProgramKemiskinan() { const router = useRouter(); + const params = useParams() as { id: string }; + const stateProgram = useProxy(programKemiskinanState); + const id = params.id; + + useEffect(() => { + if (id) { + stateProgram.findUnique.load(id).then(() => { + const data = stateProgram.findUnique.data; + if (data) { + stateProgram.update.form = { + nama: data.nama || '', + deskripsi: data.deskripsi || '', + ikonUrl: data.ikonUrl || '', + statistik: { + tahun: data.statistik?.tahun?.toString() || '', + jumlah: data.statistik?.jumlah?.toString() || '', + }, + }; + } + }); + } + }, [id]); + + const handleSubmit = async () => { + stateProgram.update.id = id; + await stateProgram.update.update(); + router.push('/admin/ekonomi/program-kemiskinan'); + }; + return ( - - - + + Edit Program Kemiskinan + Judul Program} - placeholder='Masukkan judul program' + value={stateProgram.update.form.nama} + onChange={(e) => { + stateProgram.update.form.nama = e.target.value; + }} + label={Judul Program} + placeholder="Masukkan judul program" /> + + + Deskripsi + { + stateProgram.update.form.deskripsi = val; + }} + /> + + Deskripsi Singkat} - placeholder='Masukkan deskripsi' + value={stateProgram.update.form.ikonUrl} + onChange={(e) => { + stateProgram.update.form.ikonUrl = e.target.value; + }} + label={Ikon URL} + placeholder="Masukkan ikon url" /> + + Statistik Jumlah Masyarakat Miskin + Jumlah Masyarakat Miskin} - placeholder='Masukkan jumlah masyarakat miskin' + type="number" + value={stateProgram.update.form.statistik.jumlah} + onChange={(e) => { + stateProgram.update.form.statistik.jumlah = e.target.value; + }} + label={Jumlah Masyarakat Miskin} + placeholder="Masukkan jumlah masyarakat miskin" /> + Deskripsi} - placeholder='Masukkan deskripsi' + type="number" + value={stateProgram.update.form.statistik.tahun} + onChange={(e) => { + stateProgram.update.form.statistik.tahun = e.target.value; + }} + label={Tahun} + placeholder="Masukkan tahun" /> + - + - + - + ); } diff --git a/src/app/admin/(dashboard)/ekonomi/program-kemiskinan/[id]/page.tsx b/src/app/admin/(dashboard)/ekonomi/program-kemiskinan/[id]/page.tsx index 83563a8f..4ebcd736 100644 --- a/src/app/admin/(dashboard)/ekonomi/program-kemiskinan/[id]/page.tsx +++ b/src/app/admin/(dashboard)/ekonomi/program-kemiskinan/[id]/page.tsx @@ -1,12 +1,10 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -/* eslint-disable @typescript-eslint/no-explicit-any */ 'use client' import colors from '@/con/colors'; import { Box, Button, Flex, Paper, Skeleton, Stack, Text } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { IconArrowBack, IconEdit, IconX } from '@tabler/icons-react'; import { useParams, useRouter } from 'next/navigation'; -import { useEffect, useState } from 'react'; +import { useState } from 'react'; import { useProxy } from 'valtio/utils'; import { ModalKonfirmasiHapus } from '../../../_com/modalKonfirmasiHapus'; import programKemiskinanState from '../../../_state/ekonomi/program-kemiskinan'; @@ -14,15 +12,12 @@ import programKemiskinanState from '../../../_state/ekonomi/program-kemiskinan'; function DetailProgramKemiskinan() { const programState = useProxy(programKemiskinanState) - const [lineChart, setLineChart] = useState([]); - const [mounted, setMounted] = useState(false); const [modalHapus, setModalHapus] = useState(false) const [selectedId, setSelectedId] = useState(null) const router = useRouter(); const params = useParams() useShallowEffect(() => { - setMounted(true); programState.findUnique.load(params?.id as string) }, []) @@ -35,12 +30,6 @@ function DetailProgramKemiskinan() { } } - useEffect(() => { - if (programState.findUnique.data) { - setLineChart([programState.findUnique.data]); - } - }, [programState.findUnique.data]) - if (!programState.findUnique.data) { return ( @@ -62,24 +51,24 @@ function DetailProgramKemiskinan() { Judul Program - {programState.findUnique.data?.nama} + {programState.findUnique.data?.nama} Deskripsi Singkat - + Ikon URL - {programState.findUnique.data?.ikonUrl} + {programState.findUnique.data?.ikonUrl} Statistik Jumlah Masyarakat Miskin Jumlah Masyarakat Miskin - {programState.findUnique.data?.statistik?.jumlah} + {programState.findUnique.data?.statistik?.jumlah} Tahun - {programState.findUnique.data?.statistik?.tahun} + {programState.findUnique.data?.statistik?.tahun}