import Styles from "@/constants/Styles" import { apiUpdateStatusDivision } from "@/lib/api" import { setUpdateDivision } from "@/lib/divisionUpdate" import { useAuthSession } from "@/providers/AuthProvider" import { 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 AlertKonfirmasi from "../alertKonfirmasi" import ButtonMenuHeader from "../buttonMenuHeader" import DrawerBottom from "../drawerBottom" import MenuItemRow from "../menuItemRow" type Props = { id: string | string[] active: boolean | undefined } export default function HeaderRightDivisionInfo({ id, active }: Props) { const [isVisible, setVisible] = useState(false) const { token, decryptToken } = useAuthSession() const update = useSelector((state: any) => state.divisionUpdate) const dispatch = useDispatch() async function handleUpdateStatus() { try { const hasil = await decryptToken(String(token?.current)) const response = await apiUpdateStatusDivision({ data: { user: hasil, isActive: Boolean(active) }, id: String(id) }) if (response.success) { dispatch(setUpdateDivision(!update)) Toast.show({ type: 'small', text1: 'Berhasil mengubah status', }) } else { Toast.show({ type: 'small', text1: response.message, }) } } catch (error) { console.error(error) Toast.show({ type: 'small', text1: 'Terjadi kesalahan', }) } finally { setVisible(false) } } return ( <> { setVisible(true) }} /> } title="Edit Divisi" onPress={() => { setVisible(false) router.push(`/division/${id}/edit`) }} /> } title={active ? "Non Aktifkan" : "Aktifkan"} onPress={() => { setVisible(false) AlertKonfirmasi({ title: 'Konfirmasi', desc: active ? 'Apakah anda yakin ingin menonaktifkan divisi?' : 'Apakah anda yakin ingin mengaktifkan divisi?', onPress: () => { handleUpdateStatus() } }) }} /> ) }