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 }) => (
)
}}
>
{() => }
))}
);
};