/* eslint-disable react-hooks/exhaustive-deps */ import { AlertDefaultSystem, AvatarComp, BaseBox, BoxButtonOnFooter, ButtonCustom, CheckboxCustom, CheckboxGroup, DrawerCustom, Grid, LoaderCustom, Spacing, StackCustom, TextAreaCustom, TextCustom, ViewWrapper, } from "@/components"; import ModalCustom from "@/components/Modal/ModalCustom"; import { ICON_SIZE_SMALL } from "@/constants/constans-value"; import { useAuth } from "@/hooks/use-auth"; import { apiCollaborationCreateGroup, apiCollaborationGetParticipants, } from "@/service/api-client/api-collaboration"; import { MaterialIcons } from "@expo/vector-icons"; import { router, useLocalSearchParams } from "expo-router"; import _ from "lodash"; import { useEffect, useState } from "react"; import { ScrollView, View } from "react-native"; import Toast from "react-native-toast-message"; export default function CollaborationSelectOfParticipants() { const { user } = useAuth(); const { id } = useLocalSearchParams(); const [listData, setListData] = useState(); const [loadingGetData, setLoadingGetData] = useState(false); const [description, setDescription] = useState(""); const [selected, setSelected] = useState<(string | number)[]>([]); const [openDrawer, setOpenDrawer] = useState(false); const [nameGroup, setNameGroup] = useState(""); const [openModal, setOpenModal] = useState(false); const [isLoading, setIsLoading] = useState(false); useEffect(() => { onLoadData(); }, [id]); const onLoadData = async () => { try { setLoadingGetData(true); const response = await apiCollaborationGetParticipants({ category: "list", id: id as string, }); // console.log("response :", JSON.stringify(response.data, null, 2)); if (response.success) { setListData(response.data); } } catch (error) { console.log("[ERROR]", error); } finally { setLoadingGetData(false); } }; const handlerCreateGroup = async () => { if (_.isEmpty(nameGroup)) { Toast.show({ type: "error", text1: "Nama grup tidak boleh kosong", }); return; } try { setIsLoading(true); const response = await apiCollaborationCreateGroup({ id: id as string, data: { authorId: user?.id, nameGroup: nameGroup, listSelect: selected, }, }); if (response.success) { Toast.show({ type: "success", text1: "Grup berhasil dibuat", }); router.push("/(application)/(user)/collaboration/(tabs)/group"); } else { Toast.show({ type: "error", text1: "Gagal membuat grup", }); } } catch (error) { console.log("[ERROR]", error); } finally { setIsLoading(false); } }; const handlerSubmit = () => { return ( <> { setOpenModal(true); setNameGroup(""); }} > Buat Grup ); }; return ( <> {loadingGetData ? ( ) : _.isEmpty(listData) ? ( Tidak ada partisipan ) : ( *{" "} Pilih user yang akan menjadi tim proyek anda { console.log("val :", val); setSelected(val); }} > {listData?.map((item: any, index: any) => ( {item?.User?.username} { setOpenDrawer(true); setDescription(item?.deskripsi_diri); }} /> ))} )} setNameGroup(val)} /> { setOpenModal(false); }} > Batal { AlertDefaultSystem({ title: "Buat Grup", message: "Apakah anda yakin ingin membuat grup untuk proyek ini ?", textLeft: "Tidak", textRight: "Ya", onPressLeft: () => {}, onPressRight: () => { handlerCreateGroup(); }, }); }} > Simpan {/* Drawer */} setOpenDrawer(false)} > Deskripsi diri {description} ); }