Skip to content

Instantly share code, notes, and snippets.

@YajanaRao
Created November 21, 2021 16:13
Show Gist options
  • Save YajanaRao/0d685246b1d07b26c86c98a4a01cb193 to your computer and use it in GitHub Desktop.
Save YajanaRao/0d685246b1d07b26c86c98a4a01cb193 to your computer and use it in GitHub Desktop.
App.js for Basic Auth setup
import * as React from 'react';
import { ThemeProvider } from 'react-native-elements';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { QueryClient, QueryClientProvider } from 'react-query'
import LoginScreen from './src/screens/Login';
import RegisterScreen from './src/screens/Register';
import HomeScreen from './src/screens/Home';
import DetailsScreen from './src/screens/Details';
const queryClient = new QueryClient()
// Root Stack
const Stack = createNativeStackNavigator();
// Auth Stack includes screens presented to non authenticated user
const AuthStack = createNativeStackNavigator();
// Home stack includes authenticated stack for the uesr
const HomeStack = createNativeStackNavigator();
function Auth() {
return (
<AuthStack.Navigator>
<AuthStack.Screen name="Login" component={LoginScreen} />
<AuthStack.Screen name="Register" component={RegisterScreen} />
</AuthStack.Navigator>
)
}
function App() {
return (
<HomeStack.Navigator>
<HomeStack.Screen name="Home" component={HomeScreen} />
<HomeStack.Screen name="Details" component={DetailsScreen} />
</HomeStack.Navigator>
)
}
function Root() {
return (
<QueryClientProvider client={queryClient}>
<ThemeProvider>
<NavigationContainer>
<Stack.Navigator screenOptions={{ headerShown: false }}>
<Stack.Screen name="Auth" component={Auth} />
<Stack.Screen name="App" component={App} />
</Stack.Navigator>
</NavigationContainer>
</ThemeProvider>
</QueryClientProvider>
);
}
export default Root;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment