'use client' import { API_ADDRESS, WARNA } from "@/module/_global"; import LayoutModal from "@/module/_global/layout/layout_modal"; import { funGetAllGroup, IDataGroup } from "@/module/group"; import { funGetAllPosition } from "@/module/position/lib/api_position"; import { Box, Button, Select, Stack, TextInput } from "@mantine/core"; import { useShallowEffect } from "@mantine/hooks"; import { useRouter } from "next/navigation"; import { useState } from "react"; import toast from "react-hot-toast"; import { HiUser } from "react-icons/hi2"; import { IDataPositionMember, IDataROleMember, IEditDataMember, IFormMember } from "../lib/type_member"; import { funEditMember, funGetOneMember, funGetRoleUser } from "../lib/api_member"; export default function EditMember({ id }: { id: string}) { const [isModal, setModal] = useState(false) const router = useRouter() const [listGroup, setListGorup] = useState([]) const [listPosition, setListPosition] = useState([]) const [listUserRole, setListUserRole] = useState([]) const [data, setData] = useState({ id: "", nik: "", name: "", phone: "", email: "", gender: "", idGroup: "", idPosition: "", idUserRole: "", }) async function getAllGroup() { try { const response = await funGetAllGroup('?active=true') if (response.success) { setListGorup(response.data); } else { toast.error(response.message); } } catch (error) { console.error(error) toast.error("Gagal mendapatkan grup, coba lagi nanti"); } } async function getOneData() { try { const res = await funGetOneMember(id) setData(res.data) getAllPosition(res.data?.idGroup) } catch (error) { console.error(error) } } async function getAllPosition(val: any) { try { const res = await funGetAllPosition( "?active=true" + "&group=" + `${val}` ); setListPosition(res.data); } catch (error) { console.error(error) } } async function getAllUserRole() { try { const res = await funGetRoleUser(); setListUserRole(res.data) } catch (error) { console.error(error) } } async function changeGrup(val: any) { setListPosition([]) setData({ ...data, idGroup: val, idPosition: "" }) getAllPosition(val) } useShallowEffect(() => { getAllGroup() getOneData() getAllUserRole() }, []) async function onSubmit(val: boolean) { try { const res = await funEditMember(id,{ id: data.id, nik: data.nik, name: data.name, phone: data.phone, email: data.email, gender: data.gender, idGroup: data.idGroup, idPosition: data.idPosition, idUserRole: data.idUserRole }) toast.success(res.message) router.push(`/member?active=true`) } catch (error) { toast.error('Error'); } } return ( ({ value: data.id, label: data.name, })) : [] } onChange={(val: any) => setData({ ...data, idPosition: val })} value={(data?.idPosition == "") ? null : data.idPosition} /> setData({ ...data, gender: val })} value={data.gender} /> setModal(false)} description="Apakah Anda yakin ingin mengubah data?" onYes={(val) => { if (val) onSubmit(val) setModal(false) } } /> ) }