import Styles from "@/constants/Styles"; import { apiDeleteFileTask, apiGetTaskOne } from "@/lib/api"; import { setUpdateTask } from "@/lib/taskUpdate"; import { useAuthSession } from "@/providers/AuthProvider"; import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons"; import { useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; import { Text, ToastAndroid, View } from "react-native"; import { useDispatch, useSelector } from "react-redux"; import AlertKonfirmasi from "../alertKonfirmasi"; import BorderBottomItem from "../borderBottomItem"; import DrawerBottom from "../drawerBottom"; import MenuItemRow from "../menuItemRow"; type Props = { id: string name: string extension: string idStorage: string } export default function SectionFileTask() { const [isModal, setModal] = useState(false) const { token, decryptToken } = useAuthSession() const { detail } = useLocalSearchParams<{ detail: string }>(); const [data, setData] = useState([]) const [idSelect, setIdSelect] = useState('') const update = useSelector((state: any) => state.taskUpdate) const dispatch = useDispatch() async function handleLoad() { try { const hasil = await decryptToken(String(token?.current)) const response = await apiGetTaskOne({ id: detail, user: hasil, cat: 'file' }) setData(response.data) } catch (error) { console.error(error) } } useEffect(() => { handleLoad() }, [update.file]) async function handleDelete() { try { const hasil = await decryptToken(String(token?.current)); const response = await apiDeleteFileTask({ user: hasil }, idSelect); if (response.success) { ToastAndroid.show('Berhasil menghapus file', ToastAndroid.SHORT) dispatch(setUpdateTask({ ...update, file: !update.file })) } else { ToastAndroid.show(response.message, ToastAndroid.SHORT) } } catch (error) { console.error(error); ToastAndroid.show('Terjadi kesalahan', ToastAndroid.SHORT) } finally { setModal(false) } } return ( <> File { data.length > 0 ? data.map((item, index) => { return ( } title={item.name + '.' + item.extension} titleWeight="normal" onPress={() => { setIdSelect(item.id); setModal(true) }} /> ) }) : Tidak ada file } } title="Lihat File" onPress={() => { setModal(false) }} /> } title="Download" onPress={() => { setModal(false) }} /> } title="Hapus" onPress={() => { AlertKonfirmasi({ title: 'Konfirmasi', desc: 'Apakah Anda yakin ingin menghapus file ini? File yang dihapus tidak dapat dikembalikan', onPress: () => { handleDelete() } }) }} /> ) }