import { WARNA } from "@/module/_global"; import { funGetListDivisionByIdDivision, IDataDivison } from "@/module/division_new"; import { IDataMemberTaskDivision } from "@/module/task/lib/type_task"; import { Box, Select, Button, Avatar, Divider, Flex, Group, Stack, Text, ActionIcon } from "@mantine/core"; import { useShallowEffect } from "@mantine/hooks"; import { useParams } from "next/navigation"; import { useState } from "react"; import toast from "react-hot-toast"; import { FaCheck, FaUsers } from "react-icons/fa6"; import { IShareDivision } from "../lib/type_document"; import { funShareDocument } from "../lib/api_document"; import { useHookstate } from "@hookstate/core"; import { globalRefreshDocument } from "../lib/val_document"; export default function DrawerShareDocument({ data }: { data: IShareDivision[]}) { const [selectedFiles, setSelectedFiles] = useState([]) const [isData, setData] = useState([]) const param = useParams<{ id: string }>() const refresh = useHookstate(globalRefreshDocument) async function onShare() { try { if (selectedFiles.length == 0) { return toast.error('Pilih divisi terlebih dahulu') } const respon = await funShareDocument({ dataDivision: selectedFiles, dataItem: data }) if (respon.success) { toast.success(respon.message) refresh.set(true) } else { toast.error(respon.message) } } catch (error) { console.error(error) toast.error("Gagal membagikan item, coba lagi nanti"); } } async function getData() { try { const response = await funGetListDivisionByIdDivision('?division=' + param.id) if (response.success) { setData(response.data.filter((i: any) => i.id != param.id)) } else { toast.error(response.message); } } catch (error) { toast.error("Gagal mendapatkan divisi, coba lagi nanti"); console.error(error); } } useShallowEffect(() => { getData() }, []); const handleFileClick = (index: number) => { if (selectedFiles.some((i: any) => i.id == isData[index].id)) { setSelectedFiles(selectedFiles.filter((i: any) => i.id != isData[index].id)) } else { setSelectedFiles([...selectedFiles, { id: isData[index].id, name: isData[index].name }]) } }; return ( {isData.map((v, i) => { const isSelected = selectedFiles.some((i: any) => i?.id == v.id); return ( handleFileClick(i)} > {v.name} {isSelected ? : ""} ); })} ) }