2022-08-22 20:22:27 +00:00
|
|
|
import React, { useContext, useState } from "react";
|
2022-08-04 07:22:41 +00:00
|
|
|
import {
|
2022-08-22 20:22:27 +00:00
|
|
|
NativeBaseProvider,
|
2022-08-17 21:08:38 +00:00
|
|
|
Icon
|
2022-08-04 07:22:41 +00:00
|
|
|
} from "native-base";
|
2022-08-09 22:03:48 +00:00
|
|
|
import { NavigationContainer } from '@react-navigation/native';
|
|
|
|
import { createNativeStackNavigator } from '@react-navigation/native-stack';
|
2022-08-22 20:22:27 +00:00
|
|
|
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
|
2022-08-09 22:03:48 +00:00
|
|
|
import LogIn from "./components/LogIn";
|
|
|
|
import Home from "./components/Home";
|
|
|
|
import RecoverPassword from "./components/RecoverPassword";
|
2022-08-17 16:36:33 +00:00
|
|
|
import Reservas from "./components/Reservas";
|
2022-08-22 20:22:27 +00:00
|
|
|
import Profile from "./components/Profile";
|
|
|
|
import { MaterialCommunityIcons } from '@expo/vector-icons';
|
2022-08-17 22:47:48 +00:00
|
|
|
import AreaComun from "./components/AreaComun";
|
2022-08-22 20:22:27 +00:00
|
|
|
import { UserContext, UserContextProvider } from "./context/UserContext";
|
2022-08-23 01:31:42 +00:00
|
|
|
import AgregarInvitados from "./components/AgregarInvitados";
|
2022-08-23 05:27:12 +00:00
|
|
|
import Invitados from "./components/Invitados"
|
2022-08-06 05:16:04 +00:00
|
|
|
|
2022-08-09 22:03:48 +00:00
|
|
|
const Stack = createNativeStackNavigator();
|
2022-08-22 20:22:27 +00:00
|
|
|
const Tab = createBottomTabNavigator();
|
2022-07-18 20:54:08 +00:00
|
|
|
|
2022-08-22 20:22:27 +00:00
|
|
|
function HomeTab({ route }) {
|
|
|
|
const { user } = useContext(UserContext);
|
|
|
|
const [selected, setSelected] = useState(0);
|
2022-08-17 21:08:38 +00:00
|
|
|
|
2022-08-17 16:36:33 +00:00
|
|
|
return (
|
2022-08-22 23:51:55 +00:00
|
|
|
|
2022-08-22 20:09:33 +00:00
|
|
|
<Tab.Navigator initialParams={user} initialRouteName="Comunicados" >
|
2022-09-01 04:58:53 +00:00
|
|
|
<Tab.Screen name="Mis Comunicados" component={Home} initialParams={user} options={{headerStyle: {
|
2022-08-17 16:36:33 +00:00
|
|
|
backgroundColor: "#D7A86E"
|
2022-08-22 06:09:51 +00:00
|
|
|
}, tabBarIcon: () => (<Icon mb="2" as={<MaterialCommunityIcons name={selected === 0 ? 'home' : 'home-outline'} />} color="#D7A86E" size="md" />)}} onclick={() => setSelected(0)}
|
|
|
|
/>
|
2022-09-01 04:58:53 +00:00
|
|
|
<Tab.Screen name="Mis Reservas" component={Reservas } initialParams={user} options={{headerStyle: {
|
2022-08-17 16:36:33 +00:00
|
|
|
backgroundColor: "#D7A86E"
|
2022-08-17 21:08:38 +00:00
|
|
|
}, tabBarIcon: () => (<Icon mb="2" as={<MaterialCommunityIcons name={selected === 1 ? 'tree' : 'tree-outline'} />} color="#D7A86E" size="md" />)} } onclick={() => setSelected(1)} />
|
2022-09-01 04:58:53 +00:00
|
|
|
<Tab.Screen name="Mis Invitados" component={Invitados} initialParams={user} options={{headerStyle: {
|
2022-08-23 01:31:42 +00:00
|
|
|
backgroundColor: "#D7A86E"
|
|
|
|
}, tabBarIcon: () => (<Icon mb="2" as={<MaterialCommunityIcons name={selected === 1 ? 'contacts' : 'contacts-outline'} />} color="#D7A86E" size="md" />)} } onclick={() => setSelected(1)} />
|
2022-08-22 06:51:05 +00:00
|
|
|
<Tab.Screen name="Perfil" component={Profile} initialParams={user} options={{headerStyle: {
|
2022-08-17 16:36:33 +00:00
|
|
|
backgroundColor: "#D7A86E"
|
2022-08-17 21:08:38 +00:00
|
|
|
}, tabBarIcon: () => (<Icon mb="2" as={<MaterialCommunityIcons name={selected === 2 ? 'account' : 'account-outline'} />} color="#D7A86E" size="md" />)}} onclick={() => setSelected(2)} />
|
2022-08-17 16:36:33 +00:00
|
|
|
</Tab.Navigator>
|
2022-08-22 23:51:55 +00:00
|
|
|
|
2022-08-17 16:36:33 +00:00
|
|
|
)
|
|
|
|
}
|
2022-08-24 17:15:27 +00:00
|
|
|
|
|
|
|
function HomeTabGuarda({ route }) {
|
|
|
|
const { user } = useContext(UserContext);
|
|
|
|
const [selected, setSelected] = useState(0);
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
|
|
|
<Tab.Navigator initialParams={user} initialRouteName="Comunicados" >
|
2022-09-01 04:58:53 +00:00
|
|
|
<Tab.Screen name="Mis Comunicados Guarda" component={Home} initialParams={user} options={{headerStyle: {
|
2022-08-24 17:15:27 +00:00
|
|
|
backgroundColor: "#D7A86E"
|
|
|
|
}, tabBarIcon: () => (<Icon mb="2" as={<MaterialCommunityIcons name={selected === 0 ? 'home' : 'home-outline'} />} color="#D7A86E" size="md" />)}} onclick={() => setSelected(0)}
|
|
|
|
/>
|
2022-09-01 17:15:51 +00:00
|
|
|
<Tab.Screen name="Lista De Invitados" component={Invitados} initialParams={user} options={{headerStyle: {
|
2022-08-24 17:15:27 +00:00
|
|
|
backgroundColor: "#D7A86E"
|
|
|
|
}, tabBarIcon: () => (<Icon mb="2" as={<MaterialCommunityIcons name={selected === 1 ? 'contacts' : 'contacts-outline'} />} color="#D7A86E" size="md" />)} } onclick={() => setSelected(1)} />
|
2022-09-01 04:58:53 +00:00
|
|
|
<Tab.Screen name="Mi Perfil" component={Profile} initialParams={user} options={{headerStyle: {
|
2022-08-24 17:15:27 +00:00
|
|
|
backgroundColor: "#D7A86E"
|
|
|
|
}, tabBarIcon: () => (<Icon mb="2" as={<MaterialCommunityIcons name={selected === 2 ? 'account' : 'account-outline'} />} color="#D7A86E" size="md" />)}} onclick={() => setSelected(2)} />
|
|
|
|
</Tab.Navigator>
|
|
|
|
|
|
|
|
)
|
|
|
|
}
|
2022-08-04 07:22:41 +00:00
|
|
|
export default function App() {
|
|
|
|
return (
|
|
|
|
<NativeBaseProvider>
|
2022-08-22 20:22:27 +00:00
|
|
|
<UserContextProvider>
|
|
|
|
<NavigationContainer>
|
2022-09-01 04:58:53 +00:00
|
|
|
<Stack.Navigator initialRouteName="Iniciar Sesión">
|
|
|
|
{/* <Stack.Screen name="Mis Reservas" component={Reservas} options={{
|
2022-08-22 20:22:27 +00:00
|
|
|
headerStyle: {
|
|
|
|
backgroundColor: "#D7A86E"
|
|
|
|
}
|
2022-09-01 04:58:53 +00:00
|
|
|
}} /> */}
|
2022-08-22 20:22:27 +00:00
|
|
|
<Stack.Screen name="Comunicados" component={HomeTab} options={{ headerShown: false }} />
|
2022-09-01 04:58:53 +00:00
|
|
|
<Stack.Screen name="Comunicados Guarda" component={HomeTabGuarda} options={{ headerShown: false }} />
|
|
|
|
|
|
|
|
<Stack.Screen name="Reservar" component={AreaComun} options={{
|
|
|
|
headerStyle: {
|
|
|
|
backgroundColor: "#D7A86E"
|
|
|
|
}
|
|
|
|
}} />
|
|
|
|
<Stack.Screen name="Agregar Invitado" component={AgregarInvitados} options={{
|
2022-08-22 20:22:27 +00:00
|
|
|
headerStyle: {
|
|
|
|
backgroundColor: "#D7A86E"
|
|
|
|
}
|
|
|
|
}} />
|
2022-09-01 04:58:53 +00:00
|
|
|
<Stack.Screen name="Iniciar Sesión" component={LogIn} options={{
|
2022-08-23 05:27:12 +00:00
|
|
|
headerStyle: {
|
|
|
|
backgroundColor: "#D7A86E"
|
|
|
|
}
|
|
|
|
}} />
|
2022-08-22 20:22:27 +00:00
|
|
|
</Stack.Navigator>
|
|
|
|
</NavigationContainer>
|
|
|
|
</UserContextProvider>
|
2022-08-04 07:22:41 +00:00
|
|
|
</NativeBaseProvider>
|
|
|
|
);
|
2022-08-22 20:22:27 +00:00
|
|
|
}
|