Skip to content
Snippets Groups Projects

Resolve "12-log-in-out-navbar"

Merged Erlend Ellingbø Løvaas requested to merge 12-log-in-out-navbar into main
2 files
+ 19
21
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 18
20
import * as React from 'react';
import {Text, View} from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
@@ -13,17 +12,19 @@ import useInfoStore from '../store/InfoStorage';
// names of screens
const homeName = 'Home'
const loginName = 'Login'
// Making loginName a variable so that it can be changed to 'Log out' if user is logged in
let loginName = 'Login'
const profileName = 'Profile'
const Navbar = createBottomTabNavigator();
export default function MainContainer(){
const isLoggedIn = useInfoStore((state)=>state.isLoggedIn);
if (isLoggedIn){
loginName = 'Log out';
}
return(
<NavigationContainer>
<Navbar.Navigator
@@ -31,8 +32,17 @@ export default function MainContainer(){
screenOptions={({route}) => ({
tabBarIcon: ({focused, color, size}) => {
let iconName;
if (isLoggedIn == false){
if(isLoggedIn == true){
if(route.name === loginName){
iconName = focused ? 'ios-log-out' : 'ios-log-out-outline';
} else if(route.name === homeName){
iconName = focused ? 'home' : 'home-outline';
} else if(route.name === profileName){
iconName = focused ? 'person' : 'person-outline';
}
} else {
if(route.name === loginName){
iconName = focused ? 'ios-log-in' : 'ios-log-in-outline';
} else if(route.name === homeName){
@@ -42,25 +52,16 @@ export default function MainContainer(){
}
}
return <IonIcons name={iconName} size={size} color={color} />
},
tabBarStyle: {
backgroundColor: '#3b3b3b',
height: 60,
},
tabBarLabelStyle: { fontSize: 12},
tabBarActiveTintColor: 'tomato',
})}
>
})}>
<Navbar.Screen name={homeName} component={HomeScreen} />
<Navbar.Screen name={loginName} component={LoginScreen} />
<Navbar.Screen name={profileName} component={ProfileScreen} />
@@ -68,8 +69,5 @@ export default function MainContainer(){
</Navbar.Navigator>
</NavigationContainer>
)
}
\ No newline at end of file
}
Loading