/* eslint-disable react-hooks/exhaustive-deps */ import { BackButton, DotButton, DrawerCustom, MenuDrawerDynamicGrid, ViewWrapper, } from "@/components"; import { IconDocument, IconEdit, IconNews } from "@/components/_Icon"; import { IMenuDrawerItem } from "@/components/_Interface/types"; import { MainColor } from "@/constants/color-palet"; import { ICON_SIZE_MEDIUM } from "@/constants/constans-value"; import { useAuth } from "@/hooks/use-auth"; import Investment_ButtonInvestasiSection from "@/screens/Invesment/ButtonInvestasiSection"; import Invesment_ComponentBoxOnBottomDetail from "@/screens/Invesment/ComponentBoxOnBottomDetail"; import Invesment_DetailDataPublishSection from "@/screens/Invesment/DetailDataPublishSection"; import { apiInvestmentGetOne } from "@/service/api-client/api-investment"; import { countDownAndCondition } from "@/utils/countDownAndCondition"; import { AntDesign, MaterialIcons } from "@expo/vector-icons"; import { router, Stack, useFocusEffect, useLocalSearchParams, } from "expo-router"; import _ from "lodash"; import { useCallback, useEffect, useState } from "react"; export default function InvestmentDetail() { const { user } = useAuth(); const { id, status } = useLocalSearchParams(); const [openDrawerDraft, setOpenDrawerDraft] = useState(false); const [openDrawerPublish, setOpenDrawerPublish] = useState(false); const [data, setData] = useState(null); useFocusEffect( useCallback(() => { onLoadData(); }, [id, status]) ); const onLoadData = async () => { try { const response = await apiInvestmentGetOne({ id: id as string, }); setData(response.data); } catch (error) { console.log("[ERROR]", error); } }; const handlePressDraft = (item: IMenuDrawerItem) => { console.log("PATH >> ", item.path); router.navigate(item.path as any); setOpenDrawerDraft(false); }; const handlePressPublish = (item: IMenuDrawerItem) => { console.log("PATH >> ", item.path); router.navigate(item.path as any); setOpenDrawerPublish(false); }; const [value, setValue] = useState({ sisa: 0, reminder: false, }); useEffect(() => { updateCountDown(); }, [data]); const updateCountDown = () => { const countDown = countDownAndCondition({ duration: data?.MasterPencarianInvestor.name, publishTime: data?.countDown, }); setValue({ sisa: countDown.durationDay, reminder: countDown.reminder, }); }; const bottomSection = ( ); const buttonSection = ( ); return ( <> , headerRight: () => status === "draft" ? ( setOpenDrawerDraft(true)} /> ) : status === "publish" ? ( setOpenDrawerPublish(true)} /> ) : null, }} /> {/* ========= Draft Drawer ========= */} setOpenDrawerDraft(false)} height={"auto"} > , label: "Edit Data", path: `/investment/${id}/edit`, }, { icon: ( ), label: "Edit Prospektus", path: `/investment/${id}/edit-prospectus`, }, { icon: ( ), label: "Update Dokumen", path: `/investment/${id}/recap-of-document`, }, ]} columns={4} onPressItem={handlePressDraft as any} /> {/* ========= Publish Drawer ========= */} setOpenDrawerPublish(false)} height={"auto"} > , label: "Update Dokumen", path: `/investment/${id}/recap-of-document`, }, { icon: , label: "Update Berita", path: `/investment/${id}/(news)/recap-of-news`, }, ]} onPressItem={handlePressPublish as any} /> ); }