From 94fb17e79f752906743d6c30df61b097e901e8e0 Mon Sep 17 00:00:00 2001 From: JasonFraser Date: Sat, 6 Jan 2024 22:25:29 -0400 Subject: [PATCH] first commit --- .gitignore | 41 + README.md | 0 app.json | 39 + app/(tabs)/_layout.tsx | 82 + app/(tabs)/account_tab.tsx | 33 + app/(tabs)/saved_tab.tsx | 35 + app/(tabs)/search_tab.tsx | 31 + app/+html.tsx | 46 + app/[...missing].tsx | 40 + app/_layout.tsx | 77 + app/index.tsx | 10 + app/modal.tsx | 35 + assets/fonts/SpaceMono-Regular.ttf | Bin 0 -> 93252 bytes assets/images/adaptive-icon.png | Bin 0 -> 17547 bytes assets/images/favicon.png | Bin 0 -> 1466 bytes assets/images/icon.png | Bin 0 -> 22380 bytes assets/images/splash.png | Bin 0 -> 47346 bytes babel.config.js | 10 + components/AccountScreenInfo.tsx | 115 + components/AnimatedListHeader.tsx | 187 + components/ButtonTest.tsx | 36 + components/Card.tsx | 61 + components/CardInformation.tsx | 132 + components/ExternalLink.tsx | 28 + components/ImageCarousel.tsx | 113 + components/Row.tsx | 23 + components/SavedScreenInfo.tsx | 114 + components/Screen.tsx | 44 + components/SearchScreenInfo.tsx | 150 + components/StyledText.tsx | 5 + components/Themed.tsx | 44 + components/__tests__/StyledText-test.js | 10 + constants.ts | 14 + constants/Colors.ts | 19 + metro.config.js | 10 + package-lock.json | 30857 ++++++++++++++++++++++ package.json | 52 + theme.ts | 52 + tsconfig.json | 12 + types/property.ts | 14 + 40 files changed, 32571 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 app.json create mode 100644 app/(tabs)/_layout.tsx create mode 100644 app/(tabs)/account_tab.tsx create mode 100644 app/(tabs)/saved_tab.tsx create mode 100644 app/(tabs)/search_tab.tsx create mode 100644 app/+html.tsx create mode 100644 app/[...missing].tsx create mode 100644 app/_layout.tsx create mode 100644 app/index.tsx create mode 100644 app/modal.tsx create mode 100755 assets/fonts/SpaceMono-Regular.ttf create mode 100644 assets/images/adaptive-icon.png create mode 100644 assets/images/favicon.png create mode 100644 assets/images/icon.png create mode 100644 assets/images/splash.png create mode 100644 babel.config.js create mode 100644 components/AccountScreenInfo.tsx create mode 100644 components/AnimatedListHeader.tsx create mode 100644 components/ButtonTest.tsx create mode 100644 components/Card.tsx create mode 100644 components/CardInformation.tsx create mode 100644 components/ExternalLink.tsx create mode 100644 components/ImageCarousel.tsx create mode 100644 components/Row.tsx create mode 100644 components/SavedScreenInfo.tsx create mode 100644 components/Screen.tsx create mode 100644 components/SearchScreenInfo.tsx create mode 100644 components/StyledText.tsx create mode 100644 components/Themed.tsx create mode 100644 components/__tests__/StyledText-test.js create mode 100644 constants.ts create mode 100644 constants/Colors.ts create mode 100644 metro.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 theme.ts create mode 100644 tsconfig.json create mode 100644 types/property.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0b37b6e --- /dev/null +++ b/.gitignore @@ -0,0 +1,41 @@ +# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files + +# dependencies +node_modules/ + +# Expo +.expo/ +dist/ +web-build/ + +# Native +*.orig.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision + +# 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/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/app.json b/app.json new file mode 100644 index 0000000..bb71b82 --- /dev/null +++ b/app.json @@ -0,0 +1,39 @@ +{ + "expo": { + "name": "apartment-clone", + "slug": "apartment-clone", + "version": "1.0.0", + "orientation": "portrait", + "icon": "./assets/images/icon.png", + "scheme": "myapp", + "userInterfaceStyle": "automatic", + "splash": { + "image": "./assets/images/splash.png", + "resizeMode": "contain", + "backgroundColor": "#ffffff" + }, + "assetBundlePatterns": [ + "**/*" + ], + "ios": { + "supportsTablet": true + }, + "android": { + "adaptiveIcon": { + "foregroundImage": "./assets/images/adaptive-icon.png", + "backgroundColor": "#ffffff" + } + }, + "web": { + "bundler": "metro", + "output": "static", + "favicon": "./assets/images/favicon.png" + }, + "plugins": [ + "expo-router" + ], + "experiments": { + "typedRoutes": true + } + } +} diff --git a/app/(tabs)/_layout.tsx b/app/(tabs)/_layout.tsx new file mode 100644 index 0000000..69ccec6 --- /dev/null +++ b/app/(tabs)/_layout.tsx @@ -0,0 +1,82 @@ +//This file serves as the index.tsx file (main) + + +import { MaterialCommunityIcons } from '@expo/vector-icons'; +import { Link, Tabs } from 'expo-router'; +import { Pressable } from 'react-native'; + +import { appTheme } from "../../theme"; + + +import Colors from '../../constants/Colors'; + +// creatign tab bar icons and passing establishing properties to be passed during exectution +// see more icon families at https://icons.expo.fyi/ + +function TabBarIcon(props: { + name: React.ComponentProps['name']; + color: string; +}) { + return ; +} + +// Creating the tab bar at the bottom + +export default function TabLayout() { + // const colorScheme = useColorScheme(); + + return ( + + + + + , //using the tabBarIcon option within tabs and calling the TabBarIcon function created above to pass the established properties to it + + // Info circle at the top right + // headerRight: () => ( + // + // + // {({ pressed }) => ( + // + // )} + // + // + // ), + + }} + /> + + , + }} + /> + + , + }} + /> + + + ); +} diff --git a/app/(tabs)/account_tab.tsx b/app/(tabs)/account_tab.tsx new file mode 100644 index 0000000..361e9fb --- /dev/null +++ b/app/(tabs)/account_tab.tsx @@ -0,0 +1,33 @@ +import { StyleSheet } from 'react-native'; + +import AccountScreenInfo from '../../components/AccountScreenInfo'; +import { Text, View } from '../../components/Themed'; + +export default function AccountScreen() { + return ( + + {/* Account Screen */} + {/* */} + + + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + }, + title: { + fontSize: 20, + fontWeight: 'bold', + }, + separator: { + marginVertical: 30, + height: 1, + width: '80%', + }, +}); diff --git a/app/(tabs)/saved_tab.tsx b/app/(tabs)/saved_tab.tsx new file mode 100644 index 0000000..38e55ea --- /dev/null +++ b/app/(tabs)/saved_tab.tsx @@ -0,0 +1,35 @@ +//use rnfes to create a new template + +import { StyleSheet } from 'react-native'; + +import SavedScreenInfo from '../../components/SavedScreenInfo'; +import { Text, View } from '../../components/Themed'; + +export default function SavedScreen() { + return ( + + {/* Saved Screen + */} + + + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + }, + title: { + fontSize: 20, + fontWeight: 'bold', + }, + separator: { + marginVertical: 30, + height: 1, + width: '80%', + }, +}); diff --git a/app/(tabs)/search_tab.tsx b/app/(tabs)/search_tab.tsx new file mode 100644 index 0000000..600321e --- /dev/null +++ b/app/(tabs)/search_tab.tsx @@ -0,0 +1,31 @@ +import { StyleSheet } from 'react-native'; +import { Text, View } from '../../components/Themed'; + +import SearchScreenInfo from '../../components/SearchScreenInfo'; + +export default function SearchScreen() { + return ( + + + + + + ) +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + }, + title: { + fontSize: 20, + fontWeight: 'bold', + }, + separator: { + marginVertical: 30, + height: 1, + width: '80%', + }, +}); diff --git a/app/+html.tsx b/app/+html.tsx new file mode 100644 index 0000000..25524d7 --- /dev/null +++ b/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. */} +