import React, { useContext, useEffect } from 'react'; import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; import { Text } from 'react-native'; import { createStackNavigator } from '@react-navigation/stack'; import { InformacionSabiasQue } from './InformacionSabiasQue'; import { ValorPagar } from './ValorPagar'; import { VistaPreviaValoPagar } from './VistaPreviaValoPagar'; import { ConfirmarTransaccion } from './ConfirmarTransaccion'; import { NavigationContainer } from '@react-navigation/native'; import Icon from 'react-native-vector-icons/FontAwesome'; import { RouteCamaraQr } from './componetsQr/RouteCamara'; import { AuthContext } from '../context/Auth/AuthContext'; import { tokenValidator } from '../utility/tokenValidator'; import { ContactosPagar } from './ContactosPagar'; import { Loader } from './Loader'; export interface IconoPropiedades { label: string; name: string; color?: string; size?: number; } export interface ComponenteIcono { name: string; component: React.FC; icono?: IconoPropiedades; prop?: object; } export type PropsDuna = { componentes: ComponenteIcono[]; tok?: string | null; pasarToken?: (token: string | null | undefined|object) => void; }; export type Props = { componentes: ComponenteIcono[]; }; export function NavigationContainerS({ componentes }: any): JSX.Element { return ( {componentes} ) } export function DeUnaNavigate({ componentes, tok, pasarToken }: PropsDuna): JSX.Element { const { cargarToken,setDataBank,isTransaccion } = useContext(AuthContext); const [, setValidateTokenJwt] = React.useState(false); const [isLoader, setIsLoader] = React.useState(false); useEffect(() => { validateToken(tok!) }, [tok]); useEffect(() => { if(isTransaccion==true){ pasarToken!({"mensaje":"realizado la transaccion","token":tok}) } }, [isTransaccion]); const validateToken = async (token: string) => { setIsLoader(true); const validToken = await tokenValidator(token); console.log(validToken) if (token == null || validToken === false){ pasarToken!(null); setValidateTokenJwt(false); setIsLoader(false); } else { pasarToken!(token); setValidateTokenJwt(true); cargarToken(token) setDataBank(validToken.data); setIsLoader(false); } } if(isLoader){ return ( ) } const Stack = createStackNavigator(); return ( {() => ( <> SEE )} {() => { return ; }} {() => { return ; }} {() => } {() => } {() => } {() => } {() => } ); } export const TabNavigation = ({ componentes }: Props) => { const { token} = useContext(AuthContext); const Tab = createBottomTabNavigator(); return ( {componentes && componentes.map((item: ComponenteIcono) => ( { if (token) { if (token == null || ! await tokenValidator(token)) { console.log("se volvio indefinido" + token); } } }, }} options={{ tabBarLabel: item.icono!.label, tabBarIcon: ({ color, size }) => ( ) }} > {() => } ))} ); };