Initial commit
This commit is contained in:
36
App.js
36
App.js
@@ -1,20 +1,20 @@
|
|||||||
import { StatusBar } from 'expo-status-bar';
|
// import { StatusBar } from 'expo-status-bar';
|
||||||
import { StyleSheet, Text, View } from 'react-native';
|
// import { StyleSheet, Text, View } from 'react-native';
|
||||||
|
|
||||||
export default function App() {
|
// export default function App() {
|
||||||
return (
|
// return (
|
||||||
<View style={styles.container}>
|
// <View style={styles.container}>
|
||||||
<Text>Open up App.js to start working on your app!</Text>
|
// <Text>Open up App.js to start working on your app!</Text>
|
||||||
<StatusBar style="auto" />
|
// <StatusBar style="auto" />
|
||||||
</View>
|
// </View>
|
||||||
);
|
// );
|
||||||
}
|
// }
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
// const styles = StyleSheet.create({
|
||||||
container: {
|
// container: {
|
||||||
flex: 1,
|
// flex: 1,
|
||||||
backgroundColor: '#fff',
|
// backgroundColor: '#fff',
|
||||||
alignItems: 'center',
|
// alignItems: 'center',
|
||||||
justifyContent: 'center',
|
// justifyContent: 'center',
|
||||||
},
|
// },
|
||||||
});
|
// });
|
||||||
|
|||||||
9
app.json
9
app.json
@@ -2,6 +2,7 @@
|
|||||||
"expo": {
|
"expo": {
|
||||||
"name": "CityExplorer",
|
"name": "CityExplorer",
|
||||||
"slug": "CityExplorer",
|
"slug": "CityExplorer",
|
||||||
|
"scheme": "CityExplorer",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"orientation": "portrait",
|
"orientation": "portrait",
|
||||||
"icon": "./assets/icon.png",
|
"icon": "./assets/icon.png",
|
||||||
@@ -22,7 +23,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"web": {
|
"web": {
|
||||||
"favicon": "./assets/favicon.png"
|
"favicon": "./assets/favicon.png",
|
||||||
}
|
"bundler": "metro"
|
||||||
|
},
|
||||||
|
"plugins": [
|
||||||
|
"expo-router"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
34
app/(tabs)/_layout.tsx
Normal file
34
app/(tabs)/_layout.tsx
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
import { Tabs } from 'expo-router';
|
||||||
|
import Ionicons from '@expo/vector-icons/Ionicons';
|
||||||
|
import { useTheme } from 'react-native-paper';
|
||||||
|
|
||||||
|
|
||||||
|
export default function TabLayout() {
|
||||||
|
const theme = useTheme();
|
||||||
|
console.log(theme.colors);
|
||||||
|
return (
|
||||||
|
<Tabs screenOptions ={{
|
||||||
|
tabBarInactiveTintColor: theme.colors.primary,
|
||||||
|
tabBarActiveTintColor:theme.colors.onPrimary,
|
||||||
|
tabBarStyle: {
|
||||||
|
backgroundColor: theme.colors.primaryContainer,
|
||||||
|
borderTopWidth: 0,
|
||||||
|
},
|
||||||
|
headerStyle: {
|
||||||
|
backgroundColor: theme.colors.primaryContainer,
|
||||||
|
borderBottomWidth:0
|
||||||
|
},
|
||||||
|
headerTintColor: theme.colors.primary,
|
||||||
|
}}>
|
||||||
|
<Tabs.Screen name="index" options={{ title: 'Home',tabBarIcon: ({ color, focused }) => (
|
||||||
|
<Ionicons name={focused ? 'home-sharp' : 'home-outline'} color={color} size={24} />
|
||||||
|
), }} />
|
||||||
|
<Tabs.Screen name="location" options={{ title: 'Location' ,tabBarIcon: ({ color, focused }) => (
|
||||||
|
<Ionicons name={focused ? 'location-sharp' : 'location-outline'} color={color} size={24} />
|
||||||
|
),}} />
|
||||||
|
<Tabs.Screen name="formScreen" options={{title: 'Create/Edit' ,tabBarIcon: ({ color, focused }) => (
|
||||||
|
<Ionicons name={focused ? 'add-circle-sharp' : 'add-circle-outline'} color={color} size={24} />
|
||||||
|
),}} />
|
||||||
|
</Tabs>
|
||||||
|
);
|
||||||
|
}
|
||||||
21
app/(tabs)/formScreen.tsx
Normal file
21
app/(tabs)/formScreen.tsx
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import { Text, View, StyleSheet } from 'react-native';
|
||||||
|
|
||||||
|
export default function FormScreen() {
|
||||||
|
return (
|
||||||
|
<View style={styles.container}>
|
||||||
|
<Text style={styles.text}>Form</Text>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
container: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: '#25292e',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
color: '#fff',
|
||||||
|
},
|
||||||
|
});
|
||||||
23
app/(tabs)/index.tsx
Normal file
23
app/(tabs)/index.tsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
import { Text, View, StyleSheet } from 'react-native';
|
||||||
|
import { useTheme } from 'react-native-paper';
|
||||||
|
|
||||||
|
export default function Index() {
|
||||||
|
const theme = useTheme();
|
||||||
|
return (
|
||||||
|
<View style={[styles.container, {backgroundColor: theme.colors.background}]}>
|
||||||
|
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
container: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: '#25292e',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
color: '#fff',
|
||||||
|
},
|
||||||
|
});
|
||||||
21
app/(tabs)/location.tsx
Normal file
21
app/(tabs)/location.tsx
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import { Text, View, StyleSheet } from 'react-native';
|
||||||
|
|
||||||
|
export default function Location() {
|
||||||
|
return (
|
||||||
|
<View style={styles.container}>
|
||||||
|
<Text style={styles.text}>Location View</Text>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
container: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: '#25292e',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
color: '#fff',
|
||||||
|
},
|
||||||
|
});
|
||||||
19
app/_layout.tsx
Normal file
19
app/_layout.tsx
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import { Stack } from 'expo-router';
|
||||||
|
import { useColorScheme } from 'react-native';
|
||||||
|
import { PaperProvider} from 'react-native-paper';
|
||||||
|
import { MD3LightTheme, MD3DarkTheme } from 'react-native-paper';
|
||||||
|
|
||||||
|
const colorScheme = useColorScheme();
|
||||||
|
const theme = colorScheme === 'dark' ? MD3DarkTheme :
|
||||||
|
MD3LightTheme;
|
||||||
|
|
||||||
|
console.log(colorScheme)
|
||||||
|
export default function RootLayout() {
|
||||||
|
return (
|
||||||
|
<PaperProvider theme={theme} >
|
||||||
|
<Stack>
|
||||||
|
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
|
||||||
|
</Stack>
|
||||||
|
</PaperProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
93
constants/Theme.js
Normal file
93
constants/Theme.js
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
import { MD3LightTheme, MD3DarkTheme } from 'react-native-paper';
|
||||||
|
|
||||||
|
export const Theme = {
|
||||||
|
light: {
|
||||||
|
colors:{
|
||||||
|
"primary": "rgb(140, 51, 179)",
|
||||||
|
"onPrimary": "rgb(255, 255, 255)",
|
||||||
|
"primaryContainer": "rgb(248, 216, 255)",
|
||||||
|
"onPrimaryContainer": "rgb(50, 0, 71)",
|
||||||
|
"secondary": "rgb(105, 89, 109)",
|
||||||
|
"onSecondary": "rgb(255, 255, 255)",
|
||||||
|
"secondaryContainer": "rgb(241, 220, 244)",
|
||||||
|
"onSecondaryContainer": "rgb(35, 23, 40)",
|
||||||
|
"tertiary": "rgb(129, 82, 80)",
|
||||||
|
"onTertiary": "rgb(255, 255, 255)",
|
||||||
|
"tertiaryContainer": "rgb(255, 218, 216)",
|
||||||
|
"onTertiaryContainer": "rgb(51, 17, 17)",
|
||||||
|
"error": "rgb(186, 26, 26)",
|
||||||
|
"onError": "rgb(255, 255, 255)",
|
||||||
|
"errorContainer": "rgb(255, 218, 214)",
|
||||||
|
"onErrorContainer": "rgb(65, 0, 2)",
|
||||||
|
"background": "rgb(255, 251, 255)",
|
||||||
|
"onBackground": "rgb(30, 27, 30)",
|
||||||
|
"surface": "rgb(255, 251, 255)",
|
||||||
|
"onSurface": "rgb(30, 27, 30)",
|
||||||
|
"surfaceVariant": "rgb(235, 223, 233)",
|
||||||
|
"onSurfaceVariant": "rgb(76, 68, 77)",
|
||||||
|
"outline": "rgb(125, 116, 125)",
|
||||||
|
"outlineVariant": "rgb(206, 195, 205)",
|
||||||
|
"shadow": "rgb(0, 0, 0)",
|
||||||
|
"scrim": "rgb(0, 0, 0)",
|
||||||
|
"inverseSurface": "rgb(51, 47, 51)",
|
||||||
|
"inverseOnSurface": "rgb(246, 239, 243)",
|
||||||
|
"inversePrimary": "rgb(235, 178, 255)",
|
||||||
|
"elevation": {
|
||||||
|
"level0": "transparent",
|
||||||
|
"level1": "rgb(249, 241, 251)",
|
||||||
|
"level2": "rgb(246, 235, 249)",
|
||||||
|
"level3": "rgb(242, 229, 247)",
|
||||||
|
"level4": "rgb(241, 227, 246)",
|
||||||
|
"level5": "rgb(239, 223, 244)"
|
||||||
|
},
|
||||||
|
"surfaceDisabled": "rgba(30, 27, 30, 0.12)",
|
||||||
|
"onSurfaceDisabled": "rgba(30, 27, 30, 0.38)",
|
||||||
|
"backdrop": "rgba(53, 46, 54, 0.4)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dark: {
|
||||||
|
"background" : "rgb(235, 178, 255)",
|
||||||
|
colors:{
|
||||||
|
"primary": "rgb(235, 178, 255)",
|
||||||
|
"onPrimary": "rgb(82, 0, 113)",
|
||||||
|
"primaryContainer": "rgb(114, 17, 153)",
|
||||||
|
"onPrimaryContainer": "rgb(248, 216, 255)",
|
||||||
|
"secondary": "rgb(212, 192, 215)",
|
||||||
|
"onSecondary": "rgb(57, 44, 61)",
|
||||||
|
"secondaryContainer": "rgb(80, 66, 85)",
|
||||||
|
"onSecondaryContainer": "rgb(241, 220, 244)",
|
||||||
|
"tertiary": "rgb(245, 183, 181)",
|
||||||
|
"onTertiary": "rgb(76, 37, 36)",
|
||||||
|
"tertiaryContainer": "rgb(102, 59, 57)",
|
||||||
|
"onTertiaryContainer": "rgb(255, 218, 216)",
|
||||||
|
"error": "rgb(255, 180, 171)",
|
||||||
|
"onError": "rgb(105, 0, 5)",
|
||||||
|
"errorContainer": "rgb(147, 0, 10)",
|
||||||
|
"onErrorContainer": "rgb(255, 180, 171)",
|
||||||
|
"background": "rgb(30, 27, 30)",
|
||||||
|
"onBackground": "rgb(232, 224, 229)",
|
||||||
|
"surface": "rgb(30, 27, 30)",
|
||||||
|
"onSurface": "rgb(232, 224, 229)",
|
||||||
|
"surfaceVariant": "rgb(76, 68, 77)",
|
||||||
|
"onSurfaceVariant": "rgb(206, 195, 205)",
|
||||||
|
"outline": "rgb(151, 142, 151)",
|
||||||
|
"outlineVariant": "rgb(76, 68, 77)",
|
||||||
|
"shadow": "rgb(0, 0, 0)",
|
||||||
|
"scrim": "rgb(0, 0, 0)",
|
||||||
|
"inverseSurface": "rgb(232, 224, 229)",
|
||||||
|
"inverseOnSurface": "rgb(51, 47, 51)",
|
||||||
|
"inversePrimary": "rgb(140, 51, 179)",
|
||||||
|
"elevation": {
|
||||||
|
"level0": "transparent",
|
||||||
|
"level1": "rgb(40, 35, 41)",
|
||||||
|
"level2": "rgb(46, 39, 48)",
|
||||||
|
"level3": "rgb(53, 44, 55)",
|
||||||
|
"level4": "rgb(55, 45, 57)",
|
||||||
|
"level5": "rgb(59, 48, 62)"
|
||||||
|
},
|
||||||
|
"surfaceDisabled": "rgba(232, 224, 229, 0.12)",
|
||||||
|
"onSurfaceDisabled": "rgba(232, 224, 229, 0.38)",
|
||||||
|
"backdrop": "rgba(53, 46, 54, 0.4)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
913
package-lock.json
generated
913
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
17
package.json
17
package.json
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "cityexplorer",
|
"name": "cityexplorer",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"main": "index.js",
|
"main": "expo-router/entry",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "expo start",
|
"start": "expo start",
|
||||||
"android": "expo start --android",
|
"android": "expo start --android",
|
||||||
@@ -9,13 +9,24 @@
|
|||||||
"web": "expo start --web"
|
"web": "expo start --web"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@expo/metro-runtime": "~4.0.1",
|
||||||
"expo": "~52.0.43",
|
"expo": "~52.0.43",
|
||||||
|
"expo-constants": "~17.0.8",
|
||||||
|
"expo-linking": "~7.0.5",
|
||||||
|
"expo-router": "~4.0.20",
|
||||||
"expo-status-bar": "~2.0.1",
|
"expo-status-bar": "~2.0.1",
|
||||||
"react": "18.3.1",
|
"react": "18.3.1",
|
||||||
"react-native": "0.76.9"
|
"react-dom": "18.3.1",
|
||||||
|
"react-native": "0.76.9",
|
||||||
|
"react-native-paper": "^5.13.1",
|
||||||
|
"react-native-safe-area-context": "4.12.0",
|
||||||
|
"react-native-screens": "~4.4.0",
|
||||||
|
"react-native-web": "~0.19.13"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.20.0"
|
"@babel/core": "^7.20.0",
|
||||||
|
"@types/react": "~18.3.12",
|
||||||
|
"typescript": "^5.3.3"
|
||||||
},
|
},
|
||||||
"private": true
|
"private": true
|
||||||
}
|
}
|
||||||
|
|||||||
19
tsconfig.json
Normal file
19
tsconfig.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"strict": true,
|
||||||
|
"paths": {
|
||||||
|
"@/*": [
|
||||||
|
"./*"
|
||||||
|
],
|
||||||
|
"tailwind.config": [
|
||||||
|
"./tailwind.config.js"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"extends": "expo/tsconfig.base",
|
||||||
|
"include": [
|
||||||
|
"**/*.ts",
|
||||||
|
"**/*.tsx",
|
||||||
|
"**/*.jsx"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user