Added .gitignore with patterns for ignoring files and directories, including node_modules, .expo, dist, web-build, *.orig.*, *.jks, *.p8, *.p12, *.key, *.mobileprovision, .metro-health-check*, npm-debug.*, yarn-debug.*, yarn-error.*, .DS_Store, *.pem, .env*.local, *.tsbuildinfo, expo-env.d.ts, and @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb. Added app.json with Expo configurations, including name, slug, version, orientation, icon, scheme, userInterfaceStyle, splash, assetBundlePatterns, ios, android, web, plugins, and experiments. Added _layout.tsx with TabLayout component for rendering tabs. Imported FontAwesome and expo-router. Exported ErrorBoundary and unstable_settings. Added index.tsx with TabOneScreen component for rendering Tab One. Imported EditScreenInfo, Text, and View from components/Themed. Added two.tsx with TabTwoScreen component for rendering Tab Two. Imported EditScreenInfo, Text, and View from components/Themed. Added +html.tsx for configuring root HTML during static rendering. Imported ScrollViewStyleReset from expo-router/html. Added [...missing].tsx for rendering NotFoundScreen. Imported Link and Stack from expo-router. Imported StyleSheet, Text, and View from components/Themed. Added _layout.tsx for configuring the root layout. Imported FontAwesome and expo-router. Imported DarkTheme and DefaultTheme from @react-navigation/native. Imported useFonts from expo-font. Imported SplashScreen and Stack from expo-router. Imported useEffect and useColorScheme from react-native. Added modal.tsx with ModalScreen component for rendering Modal. Imported StatusBar from expo-status-bar and StyleSheet from react-native. Added babel.config.js with presets babel-preset-expo and plugins expo-router/babel. Added EditScreenInfo.tsx with EditScreenInfo component for displaying information about the code. Imported React and StyleSheet from react-native. Imported Colors from constants/Colors. Imported ExternalLink from components/ExternalLink. Imported MonoText from components/StyledText. Imported Text and View from components/Themed.
55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
import FontAwesome from '@expo/vector-icons/FontAwesome';
|
|
import { Link, Tabs } from 'expo-router';
|
|
import { Pressable, useColorScheme } from 'react-native';
|
|
|
|
import Colors from '../../constants/Colors';
|
|
|
|
/**
|
|
* You can explore the built-in icon families and icons on the web at https://icons.expo.fyi/
|
|
*/
|
|
function TabBarIcon(props: {
|
|
name: React.ComponentProps<typeof FontAwesome>['name'];
|
|
color: string;
|
|
}) {
|
|
return <FontAwesome size={28} style={{ marginBottom: -3 }} {...props} />;
|
|
}
|
|
|
|
export default function TabLayout() {
|
|
const colorScheme = useColorScheme();
|
|
|
|
return (
|
|
<Tabs
|
|
screenOptions={{
|
|
tabBarActiveTintColor: Colors[colorScheme ?? 'light'].tint,
|
|
}}>
|
|
<Tabs.Screen
|
|
name="index"
|
|
options={{
|
|
title: 'Tab One',
|
|
tabBarIcon: ({ color }) => <TabBarIcon name="code" color={color} />,
|
|
headerRight: () => (
|
|
<Link href="/modal" asChild>
|
|
<Pressable>
|
|
{({ pressed }) => (
|
|
<FontAwesome
|
|
name="info-circle"
|
|
size={25}
|
|
color={Colors[colorScheme ?? 'light'].text}
|
|
style={{ marginRight: 15, opacity: pressed ? 0.5 : 1 }}
|
|
/>
|
|
)}
|
|
</Pressable>
|
|
</Link>
|
|
),
|
|
}}
|
|
/>
|
|
<Tabs.Screen
|
|
name="two"
|
|
options={{
|
|
title: 'Tab Two',
|
|
tabBarIcon: ({ color }) => <TabBarIcon name="code" color={color} />,
|
|
}}
|
|
/>
|
|
</Tabs>
|
|
);
|
|
}
|