import Styles from "@/constants/Styles" import { setUpdateAnnouncement } from "@/lib/announcementUpdate" import { apiDeleteAnnouncement } from "@/lib/api" import { useAuthSession } from "@/providers/AuthProvider" import { useTheme } from "@/providers/ThemeProvider" import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons" import { router } from "expo-router" import { useState } from "react" import { View } from "react-native" import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" import ModalConfirmation from "../ModalConfirmation" import ButtonMenuHeader from "../buttonMenuHeader" import DrawerBottom from "../drawerBottom" import MenuItemRow from "../menuItemRow" type Props = { id: string } export default function HeaderRightAnnouncementDetail({ id }: Props) { const { token, decryptToken } = useAuthSession() const { colors } = useTheme(); const [isVisible, setVisible] = useState(false) const update = useSelector((state: any) => state.announcementUpdate) const [showDeleteModal, setShowDeleteModal] = useState(false) const dispatch = useDispatch() async function handleDelete() { try { const hasil = await decryptToken(String(token?.current)) const response = await apiDeleteAnnouncement({ user: hasil }, id) if (response.success) { router.back() dispatch(setUpdateAnnouncement(!update)) return Toast.show({ type: 'small', text1: 'Berhasil menghapus data', }) } } catch (error) { console.error(error) } finally { setShowDeleteModal(false) } } return ( <> { setVisible(true) }} /> } title="Edit" onPress={() => { setVisible(false) router.push(`/announcement/edit/${id}`) }} /> } title="Hapus" onPress={() => { setVisible(false) setTimeout(() => { setShowDeleteModal(true) }, 600) }} /> { setShowDeleteModal(false) handleDelete() }} onCancel={() => setShowDeleteModal(false)} confirmText="Hapus" cancelText="Batal" /> ) }