import BorderBottomItem from "@/components/borderBottomItem"; import ButtonTab from "@/components/buttonTab"; import InputSearch from "@/components/inputSearch"; import LabelStatus from "@/components/labelStatus"; import PaperGridContent from "@/components/paperGridContent"; import ProgressBar from "@/components/progressBar"; import { ColorsStatus } from "@/constants/ColorsStatus"; import Styles from "@/constants/Styles"; import { apiGetProject } from "@/lib/api"; import { useAuthSession } from "@/providers/AuthProvider"; import { AntDesign, Ionicons, MaterialCommunityIcons, } from "@expo/vector-icons"; import { router, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; import { Pressable, SafeAreaView, ScrollView, Text, View } from "react-native"; import { useSelector } from "react-redux"; type Props = { id: string; title: string; desc: string; status: number; member: number; progress: number; createdAt: string; }; export default function ListProject() { const { status, group, cat } = useLocalSearchParams<{ status?: string; group?: string; cat?: string; }>(); const { token, decryptToken } = useAuthSession(); const entityUser = useSelector((state: any) => state.user); const [search, setSearch] = useState(""); const [nameGroup, setNameGroup] = useState(""); const [data, setData] = useState([]); const [isList, setList] = useState(false); const update = useSelector((state: any) => state.projectUpdate) async function handleLoad() { try { const hasil = await decryptToken(String(token?.current)); const response = await apiGetProject({ user: hasil, status: String(status), search: search, group: String(group), kategori: String(cat), }); if (response.success) { setData(response.data); setNameGroup(response.filter.name); } } catch (error) { console.error(error); } } useEffect(() => { handleLoad(); }, [status, search, group, cat, update.data]); return ( { router.push( `/project?status=0&group=${group}&search=${search}&cat=${cat}` ); }} label="Segera" icon={ } n={4} /> { router.push( `/project?status=1&group=${group}&search=${search}&cat=${cat}` ); }} label="Dikerjakan" icon={ } n={4} /> { router.push( `/project?status=2&group=${group}&search=${search}&cat=${cat}` ); }} label="Selesai" icon={ } n={4} /> { router.push( `/project?status=3&group=${group}&search=${search}&cat=${cat}` ); }} label="Batal" icon={ } n={4} /> { setList(!isList); }} > Filter : { (entityUser.role == "supadmin" || entityUser.role == "developer") && nameGroup } { (entityUser.role == 'user' || entityUser.role == 'coadmin') ? (cat == 'null' || cat == 'undefined' || cat == undefined || cat == '' || cat == 'data-saya') ? 'Kegiatan Saya' : 'Semua Kegiatan' : '' } { data.length > 0 ? isList ? ( {data.map((item, index) => { return ( { router.push(`/project/${item.id}`); }} borderType="bottom" icon={ } title={item.title} /> ); })} ) : ( {data.map((item, index) => { return ( { router.push(`/project/${item.id}`); }} content="page" title={item.title} headerColor="primary" > {item.createdAt} ); })} ) : Tidak ada kegiatan } ); }