import ButtonBackHeader from "@/components/buttonBackHeader"; import { ButtonForm } from "@/components/buttonForm"; import ButtonMenuHeader from "@/components/buttonMenuHeader"; import DrawerBottom from "@/components/drawerBottom"; import { InputForm } from "@/components/inputForm"; import MenuItemRow from "@/components/menuItemRow"; import { Headers } from "@/constants/Headers"; 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/AntDesign"; import { router, Stack } from "expo-router"; import React, { useState } from "react"; import { ToastAndroid, View } from "react-native"; import { useDispatch, useSelector } from "react-redux"; export default function RootLayout() { 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) ToastAndroid.show('Berhasil menambahkan data', ToastAndroid.SHORT) } } 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({ ...error, title: true }) } else { setError({ ...error, title: false }) } } } return ( <> { router.back() }} />, headerTitle: 'Lembaga Desa', headerTitleAlign: 'center', headerRight: () => { setVisible(true) }} /> }} /> } title="Tambah Lembaga" onPress={() => { setVisible(false); setTimeout( () => { setVisibleTambah(true) }, 100, ); }} /> { validationForm(val, 'title') }} /> { onCheck() }} /> ) }