import Styles from "@/constants/Styles" import { apiCreateGroup } from "@/lib/api" import { setUpdateGroup } from "@/lib/groupSlice" import { useAuthSession } from "@/providers/AuthProvider" import { AntDesign } from "@expo/vector-icons" import { useState } from "react" import { View } from "react-native" import Toast from "react-native-toast-message" import { useDispatch, useSelector } from "react-redux" import { ButtonForm } from "../buttonForm" import ButtonMenuHeader from "../buttonMenuHeader" import DrawerBottom from "../drawerBottom" import { InputForm } from "../inputForm" import MenuItemRow from "../menuItemRow" export default function HeaderRightGroupList() { const dispatch = useDispatch() const update = useSelector((state: any) => state.groupUpdate) const { token, decryptToken } = useAuthSession() const [isVisible, setVisible] = useState(false) const [isVisibleTambah, setVisibleTambah] = useState(false) const [title, setTitle] = useState('') const [error, setError] = useState({ title: false, }); async function handleTambah() { try { const hasil = await decryptToken(String(token?.current)) const response = await apiCreateGroup({ user: hasil, name: title }) dispatch(setUpdateGroup(!update)) } catch (error) { console.error(error) } finally { setVisibleTambah(false) setVisible(false) Toast.show({ type: 'small', text1: 'Berhasil menambahkan data', }) } } function onCheck() { if (Object.values(error).some((v) => v == true)) return false handleTambah() } function validationForm(val: any, cat: 'title') { if (cat === 'title') { setTitle(val) if (val == "" || val.length < 3) { setError((prev) => ({ ...prev, title: true })) } else { setError((prev) => ({ ...prev, title: false })) } } } return ( <> { setVisible(true) }} /> setVisible(false)} title="Menu"> } title="Tambah Lembaga" onPress={() => { setVisible(false); setTimeout( () => { setVisibleTambah(true) }, 600, ); }} /> setVisibleTambah(false)} title="Tambah Lembaga Desa"> { validationForm(val, 'title') }} /> v == true) || title == ""} onPress={() => { onCheck() }} /> ) }