new_react_frontend #9

Merged
Ichitux merged 24 commits from new_react_frontend into main 2026-07-06 13:10:11 +00:00
7 changed files with 147 additions and 3 deletions
Showing only changes of commit 1b9fd16b9b - Show all commits
+41
View File
@@ -0,0 +1,41 @@
import { Tabs } from 'expo-router';
import { Ionicons } from '@expo/vector-icons';
export default function TabLayout() {
return (
<Tabs
screenOptions={{
tabBarActiveTintColor: '#007AFF',
tabBarInactiveTintColor: '#8E8E93',
}}
>
<Tabs.Screen
name="index"
options={{
title: 'Buscar',
tabBarIcon: ({ color, size }) => (
<Ionicons name="search" size={size} color={color} />
),
}}
/>
<Tabs.Screen
name="map"
options={{
title: 'Mapa',
tabBarIcon: ({ color, size }) => (
<Ionicons name="map" size={size} color={color} />
),
}}
/>
<Tabs.Screen
name="profile"
options={{
title: 'Perfil',
tabBarIcon: ({ color, size }) => (
<Ionicons name="person" size={size} color={color} />
),
}}
/>
</Tabs>
);
}
+29
View File
@@ -0,0 +1,29 @@
import { View, Text, StyleSheet } from 'react-native';
export default function HomeScreen() {
return (
<View style={styles.container}>
<Text style={styles.title}>FarmaFinder</Text>
<Text style={styles.subtitle}>Busca medicamentos</Text>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F2F2F7',
},
title: {
fontSize: 28,
fontWeight: 'bold',
color: '#1C1C1E',
},
subtitle: {
fontSize: 16,
color: '#8E8E93',
marginTop: 8,
},
});
+23
View File
@@ -0,0 +1,23 @@
import { View, Text, StyleSheet } from 'react-native';
export default function MapScreen() {
return (
<View style={styles.container}>
<Text style={styles.title}>Mapa de Farmacias</Text>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F2F2F7',
},
title: {
fontSize: 24,
fontWeight: 'bold',
color: '#1C1C1E',
},
});
+23
View File
@@ -0,0 +1,23 @@
import { View, Text, StyleSheet } from 'react-native';
export default function ProfileScreen() {
return (
<View style={styles.container}>
<Text style={styles.title}>Perfil</Text>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F2F2F7',
},
title: {
fontSize: 24,
fontWeight: 'bold',
color: '#1C1C1E',
},
});
+23
View File
@@ -0,0 +1,23 @@
import { Stack } from 'expo-router';
import { StatusBar } from 'expo-status-bar';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
const queryClient = new QueryClient();
export default function RootLayout() {
return (
<GestureHandlerRootView style={{ flex: 1 }}>
<QueryClientProvider client={queryClient}>
<Stack>
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
<Stack.Screen name="medicine/[id]" options={{ title: 'Medicamento' }} />
<Stack.Screen name="pharmacy/[id]" options={{ title: 'Farmacia' }} />
<Stack.Screen name="auth/login" options={{ title: 'Iniciar Sesión' }} />
<Stack.Screen name="auth/register" options={{ title: 'Registrarse' }} />
</Stack>
<StatusBar style="auto" />
</QueryClientProvider>
</GestureHandlerRootView>
);
}
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "frontend-mobile",
"version": "1.0.0",
"main": "index.ts",
"main": "expo-router/entry",
"dependencies": {
"@react-native-async-storage/async-storage": "2.2.0",
"@tanstack/react-query": "^5.101.2",
+7 -2
View File
@@ -4,8 +4,13 @@
"strict": true,
"baseUrl": ".",
"paths": {
"@/*": ["./*"]
"@/*": [
"./*"
]
}
},
"include": ["**/*.ts", "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts"]
"include": [
"**/*.ts",
"**/*.tsx"
]
}