upd: task

Deskripsi:
- remove anggota
- profil anggota

No Issues
This commit is contained in:
amel
2024-08-20 14:46:07 +08:00
parent f090af8f7d
commit e3b7379559
3 changed files with 136 additions and 8 deletions

View File

@@ -1,18 +1,26 @@
'use client'
import { WARNA } from "@/module/_global";
import { Box, Group, Flex, Avatar, Text } from "@mantine/core";
import { LayoutDrawer, WARNA } from "@/module/_global";
import { Box, Group, Flex, Avatar, Text, SimpleGrid, Stack } from "@mantine/core";
import { useShallowEffect } from "@mantine/hooks";
import { useParams } from "next/navigation";
import { useParams, useRouter } from "next/navigation";
import { useState } from "react";
import toast from "react-hot-toast";
import { funGetTaskDivisionById } from "../lib/api_task";
import { funDeleteMemberTask, funGetTaskDivisionById } from "../lib/api_task";
import { IDataMemberTaskDivision } from "../lib/type_task";
import { FaUser } from "react-icons/fa6";
import { IoIosCloseCircle } from "react-icons/io";
import LayoutModal from "@/module/_global/layout/layout_modal";
export default function ListAnggotaDetailTask() {
const [isData, setData] = useState<IDataMemberTaskDivision[]>([])
const [loading, setLoading] = useState(true)
const param = useParams<{ id: string, detail: string }>()
const [openDrawer, setOpenDrawer] = useState(false)
const [isOpenModal, setOpenModal] = useState(false)
const [dataChoose, setDataChoose] = useState({ id: '', name: '' })
const router = useRouter()
async function getOneData() {
try {
setLoading(true)
@@ -36,6 +44,24 @@ export default function ListAnggotaDetailTask() {
}, [param.detail])
async function onSubmit() {
try {
const res = await funDeleteMemberTask(param.detail, { idUser: dataChoose.id });
if (res.success) {
toast.success(res.message)
setDataChoose({ id: '', name: '' })
getOneData()
setOpenDrawer(false)
} else {
toast.error(res.message)
}
} catch (error) {
console.error(error);
toast.error("Gagal menghapus anggota tugas divisi, coba lagi nanti");
}
}
return (
<Box pt={20}>
<Group justify="space-between">
@@ -62,6 +88,10 @@ export default function ListAnggotaDetailTask() {
align={"center"}
mt={20}
key={i}
onClick={() => {
setDataChoose({ id: v.idUser, name: v.name })
setOpenDrawer(true)
}}
>
<Group>
<Avatar src={""} alt="it's me" size="lg" />
@@ -83,6 +113,44 @@ export default function ListAnggotaDetailTask() {
</Box>
</Box>
</Box>
<LayoutDrawer opened={openDrawer} title={dataChoose.name} onClose={() => setOpenDrawer(false)}>
<Box>
<Stack pt={10}>
<SimpleGrid
cols={{ base: 3, sm: 3, lg: 3 }}
>
<Flex onClick={() => { router.push('/member/' + dataChoose.id) }} justify={'center'} align={'center'} direction={'column'} >
<Box>
<FaUser size={30} color={WARNA.biruTua} />
</Box>
<Box>
<Text c={WARNA.biruTua}>Lihat profil</Text>
</Box>
</Flex>
<Flex onClick={() => { setOpenModal(true) }} justify={'center'} align={'center'} direction={'column'} >
<Box>
<IoIosCloseCircle size={30} color={WARNA.biruTua} />
</Box>
<Box>
<Text c={WARNA.biruTua}>Keluarkan anggota</Text>
</Box>
</Flex>
</SimpleGrid>
</Stack>
</Box>
</LayoutDrawer>
<LayoutModal opened={isOpenModal} onClose={() => setOpenModal(false)}
description="Apakah Anda yakin ingin mengeluarkan anggota?"
onYes={(val) => {
if (val) {
onSubmit()
}
setOpenModal(false)
}} />
</Box>
)
}