example/src/App.tsx (76 lines of code) (raw):

import * as React from 'react'; import { Provider, DefaultTheme, Appbar } from 'react-native-paper'; import { NavigationContainer } from '@react-navigation/native'; import { createStackNavigator, StackHeaderProps, } from '@react-navigation/stack'; import { SafeAreaProvider, initialWindowMetrics, } from 'react-native-safe-area-context'; import PlaygroundExample from './screens/PlaygroundExample'; import Home from './screens/Home'; import SimpleExample from './screens/SimpleExample'; import AdvancedExample from './screens/AdvancedExample'; import SwipeableExample from './screens/SwipeableExample'; import { TestPlan } from './screens/TestPlan'; export const theme = { ...DefaultTheme, roundness: 2, colors: { ...DefaultTheme.colors, primary: '#3498db', accent: '#f1c40f', }, }; export type RootStackParamList = { Home: undefined; TestPlan: undefined; SimpleExample: undefined; AdvancedExample: undefined; SwipeableExample: undefined; PlaygroundExample: undefined; }; const Stack = createStackNavigator<RootStackParamList>(); function Header({ navigation, route }: StackHeaderProps) { const canGoBack = navigation.canGoBack(); return ( <Appbar.Header> {canGoBack ? ( <Appbar.BackAction testID="goBack" onPress={navigation.goBack} /> ) : null} <Appbar.Content title={route.name} /> </Appbar.Header> ); } export default function App() { return ( <SafeAreaProvider initialMetrics={initialWindowMetrics}> <Provider theme={theme}> <NavigationContainer> <Stack.Navigator screenOptions={{ header: (props) => <Header {...props} /> }} > <Stack.Screen name="Home" component={Home} options={{ title: 'Examples' }} /> <Stack.Screen name="TestPlan" component={TestPlan} /> <Stack.Screen name="SimpleExample" component={SimpleExample} /> <Stack.Screen name="AdvancedExample" component={AdvancedExample} /> <Stack.Screen name="SwipeableExample" component={SwipeableExample} /> <Stack.Screen name="PlaygroundExample" component={PlaygroundExample} /> </Stack.Navigator> </NavigationContainer> </Provider> </SafeAreaProvider> ); }