diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..e3cdc6cb --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v18.8.0 \ No newline at end of file diff --git a/apps/mobile/.expo-shared/assets.json b/apps/mobile/.expo-shared/assets.json deleted file mode 100644 index 1e6decfb..00000000 --- a/apps/mobile/.expo-shared/assets.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true, - "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true -} diff --git a/apps/mobile/.gitignore b/apps/mobile/.gitignore index 8776f65c..0b37b6eb 100644 --- a/apps/mobile/.gitignore +++ b/apps/mobile/.gitignore @@ -1,18 +1,41 @@ +# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files + +# dependencies +node_modules/ + # Expo -/android -/ios +.expo/ +dist/ +web-build/ -__generated__ -node_modules -.expo/* -npm-debug.* +# Native +*.orig.* *.jks *.p8 *.p12 *.key *.mobileprovision -*.orig.* -web-build/ + +# Metro +.metro-health-check* + +# debug +npm-debug.* +yarn-debug.* +yarn-error.* # macOS .DS_Store +*.pem + +# local env files +.env*.local + +# typescript +*.tsbuildinfo + +# @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb +# The following patterns were generated by expo-cli + +expo-env.d.ts +# @end expo-cli \ No newline at end of file diff --git a/apps/mobile/App.tsx b/apps/mobile/App.tsx deleted file mode 100644 index 63f335c8..00000000 --- a/apps/mobile/App.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { HomeIcon, HomeScreen } from '@acme/feature-home'; -import { StatusBar } from 'expo-status-bar'; -import { StyleSheet, View } from 'react-native'; - -export default function App() { - return ( - - - - - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: '#fff', - alignItems: 'center', - justifyContent: 'center', - }, -}); diff --git a/apps/mobile/app.json b/apps/mobile/app.json index 5bdc5cf1..50b9ed89 100644 --- a/apps/mobile/app.json +++ b/apps/mobile/app.json @@ -2,11 +2,13 @@ "expo": { "name": "expo-monorepo", "slug": "expo-monorepo", + "scheme": "expo-monorepo", "version": "1.0.0", "orientation": "portrait", - "icon": "./assets/icon.png", + "userInterfaceStyle": "automatic", + "icon": "./assets/images/icon.png", "splash": { - "image": "./assets/splash.png", + "image": "./assets/images/splash.png", "resizeMode": "contain", "backgroundColor": "#ffffff" }, @@ -24,12 +26,18 @@ "android": { "package": "com.bycedric.expomonorepo", "adaptiveIcon": { - "foregroundImage": "./assets/adaptive-icon.png", + "foregroundImage": "./assets/images/adaptive-icon.png", "backgroundColor": "#FFFFFF" } }, "web": { - "favicon": "./assets/favicon.png" + "output": "static", + "bundler": "metro", + "favicon": "./assets/images/favicon.png" + }, + "experiments": { + "tsconfigPaths": true, + "typedRoutes": true } } -} +} \ No newline at end of file diff --git a/apps/mobile/app/(tabs)/_layout.tsx b/apps/mobile/app/(tabs)/_layout.tsx new file mode 100644 index 00000000..d3705ee9 --- /dev/null +++ b/apps/mobile/app/(tabs)/_layout.tsx @@ -0,0 +1,57 @@ +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['name']; + color: string; +}) { + return ; +} + +export default function TabLayout() { + const colorScheme = useColorScheme(); + + return ( + + , + headerRight: () => ( + + + {({ pressed }) => ( + + )} + + + ), + }} + /> + , + }} + /> + + ); +} diff --git a/apps/mobile/app/(tabs)/index.tsx b/apps/mobile/app/(tabs)/index.tsx new file mode 100644 index 00000000..ad86aa0d --- /dev/null +++ b/apps/mobile/app/(tabs)/index.tsx @@ -0,0 +1,20 @@ +import { vars } from 'nativewind'; +import { Pressable, Text, View } from 'react-native'; + +const theme = vars({ + '--theme-fg': 'red', +}); + +const App = () => { + return ( + + Variables! + + Transitions + + Animations + + ); +}; + +export default App; diff --git a/apps/mobile/app/(tabs)/two.tsx b/apps/mobile/app/(tabs)/two.tsx new file mode 100644 index 00000000..42d5e9da --- /dev/null +++ b/apps/mobile/app/(tabs)/two.tsx @@ -0,0 +1,9 @@ +import { Text, View } from 'react-native'; + +export default function TabTwoScreen() { + return ( + + Tab two!! + + ); +} diff --git a/apps/mobile/app/+html.tsx b/apps/mobile/app/+html.tsx new file mode 100644 index 00000000..25524d77 --- /dev/null +++ b/apps/mobile/app/+html.tsx @@ -0,0 +1,46 @@ +import { ScrollViewStyleReset } from 'expo-router/html'; + +// This file is web-only and used to configure the root HTML for every +// web page during static rendering. +// The contents of this function only run in Node.js environments and +// do not have access to the DOM or browser APIs. +export default function Root({ children }: { children: React.ReactNode }) { + return ( + + + + + + {/* + This viewport disables scaling which makes the mobile website act more like a native app. + However this does reduce built-in accessibility. If you want to enable scaling, use this instead: + + */} + + {/* + Disable body scrolling on web. This makes ScrollView components work closer to how they do on native. + However, body scrolling is often nice to have for mobile web. If you want to enable it, remove this line. + */} + + + {/* Using raw CSS styles as an escape-hatch to ensure the background color never flickers in dark-mode. */} +