From 3cb30cdd47b91ccdf1a3fbac0c8d3056a091d8e3 Mon Sep 17 00:00:00 2001 From: medvegergo Date: Sun, 30 Mar 2025 18:34:12 +0200 Subject: [PATCH] finished project --- app/(tabs)/_layout.tsx | 45 ------- app/(tabs)/explore.tsx | 109 ----------------- app/(tabs)/index.tsx | 74 ------------ app/+not-found.tsx | 32 ----- app/_layout.tsx | 39 ------ app/index.tsx | 95 +++++++++++++++ components/Collapsible.tsx | 45 ------- components/ExternalLink.tsx | 24 ---- components/HapticTab.tsx | 18 --- components/HelloWave.tsx | 40 ------- components/ParallaxScrollView.tsx | 82 ------------- components/ThemedText.tsx | 60 ---------- components/ThemedView.tsx | 14 --- components/__tests__/ThemedText-test.tsx | 10 -- .../__snapshots__/ThemedText-test.tsx.snap | 24 ---- components/ui/IconSymbol.ios.tsx | 32 ----- components/ui/IconSymbol.tsx | 43 ------- components/ui/TabBarBackground.ios.tsx | 22 ---- components/ui/TabBarBackground.tsx | 6 - constants/Colors.ts | 26 ---- hooks/useColorScheme.ts | 1 - hooks/useColorScheme.web.ts | 21 ---- hooks/useThemeColor.ts | 21 ---- scripts/reset-project.js | 112 ------------------ 24 files changed, 95 insertions(+), 900 deletions(-) delete mode 100644 app/(tabs)/_layout.tsx delete mode 100644 app/(tabs)/explore.tsx delete mode 100644 app/(tabs)/index.tsx delete mode 100644 app/+not-found.tsx delete mode 100644 app/_layout.tsx create mode 100644 app/index.tsx delete mode 100644 components/Collapsible.tsx delete mode 100644 components/ExternalLink.tsx delete mode 100644 components/HapticTab.tsx delete mode 100644 components/HelloWave.tsx delete mode 100644 components/ParallaxScrollView.tsx delete mode 100644 components/ThemedText.tsx delete mode 100644 components/ThemedView.tsx delete mode 100644 components/__tests__/ThemedText-test.tsx delete mode 100644 components/__tests__/__snapshots__/ThemedText-test.tsx.snap delete mode 100644 components/ui/IconSymbol.ios.tsx delete mode 100644 components/ui/IconSymbol.tsx delete mode 100644 components/ui/TabBarBackground.ios.tsx delete mode 100644 components/ui/TabBarBackground.tsx delete mode 100644 constants/Colors.ts delete mode 100644 hooks/useColorScheme.ts delete mode 100644 hooks/useColorScheme.web.ts delete mode 100644 hooks/useThemeColor.ts delete mode 100644 scripts/reset-project.js diff --git a/app/(tabs)/_layout.tsx b/app/(tabs)/_layout.tsx deleted file mode 100644 index cfbc1e2..0000000 --- a/app/(tabs)/_layout.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { Tabs } from 'expo-router'; -import React from 'react'; -import { Platform } from 'react-native'; - -import { HapticTab } from '@/components/HapticTab'; -import { IconSymbol } from '@/components/ui/IconSymbol'; -import TabBarBackground from '@/components/ui/TabBarBackground'; -import { Colors } from '@/constants/Colors'; -import { useColorScheme } from '@/hooks/useColorScheme'; - -export default function TabLayout() { - const colorScheme = useColorScheme(); - - return ( - - , - }} - /> - , - }} - /> - - ); -} diff --git a/app/(tabs)/explore.tsx b/app/(tabs)/explore.tsx deleted file mode 100644 index 06e70c4..0000000 --- a/app/(tabs)/explore.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import { StyleSheet, Image, Platform } from 'react-native'; - -import { Collapsible } from '@/components/Collapsible'; -import { ExternalLink } from '@/components/ExternalLink'; -import ParallaxScrollView from '@/components/ParallaxScrollView'; -import { ThemedText } from '@/components/ThemedText'; -import { ThemedView } from '@/components/ThemedView'; -import { IconSymbol } from '@/components/ui/IconSymbol'; - -export default function TabTwoScreen() { - return ( - - }> - - Explore - - This app includes example code to help you get started. - - - This app has two screens:{' '} - app/(tabs)/index.tsx and{' '} - app/(tabs)/explore.tsx - - - The layout file in app/(tabs)/_layout.tsx{' '} - sets up the tab navigator. - - - Learn more - - - - - You can open this project on Android, iOS, and the web. To open the web version, press{' '} - w in the terminal running this project. - - - - - For static images, you can use the @2x and{' '} - @3x suffixes to provide files for - different screen densities - - - - Learn more - - - - - Open app/_layout.tsx to see how to load{' '} - - custom fonts such as this one. - - - - Learn more - - - - - This template has light and dark mode support. The{' '} - useColorScheme() hook lets you inspect - what the user's current color scheme is, and so you can adjust UI colors accordingly. - - - Learn more - - - - - This template includes an example of an animated component. The{' '} - components/HelloWave.tsx component uses - the powerful react-native-reanimated{' '} - library to create a waving hand animation. - - {Platform.select({ - ios: ( - - The components/ParallaxScrollView.tsx{' '} - component provides a parallax effect for the header image. - - ), - })} - - - ); -} - -const styles = StyleSheet.create({ - headerImage: { - color: '#808080', - bottom: -90, - left: -35, - position: 'absolute', - }, - titleContainer: { - flexDirection: 'row', - gap: 8, - }, -}); diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx deleted file mode 100644 index 886b079..0000000 --- a/app/(tabs)/index.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { Image, StyleSheet, Platform } from 'react-native'; - -import { HelloWave } from '@/components/HelloWave'; -import ParallaxScrollView from '@/components/ParallaxScrollView'; -import { ThemedText } from '@/components/ThemedText'; -import { ThemedView } from '@/components/ThemedView'; - -export default function HomeScreen() { - return ( - - }> - - Welcome! - - - - Step 1: Try it - - Edit app/(tabs)/index.tsx to see changes. - Press{' '} - - {Platform.select({ - ios: 'cmd + d', - android: 'cmd + m', - web: 'F12' - })} - {' '} - to open developer tools. - - - - Step 2: Explore - - Tap the Explore tab to learn more about what's included in this starter app. - - - - Step 3: Get a fresh start - - When you're ready, run{' '} - npm run reset-project to get a fresh{' '} - app directory. This will move the current{' '} - app to{' '} - app-example. - - - - ); -} - -const styles = StyleSheet.create({ - titleContainer: { - flexDirection: 'row', - alignItems: 'center', - gap: 8, - }, - stepContainer: { - gap: 8, - marginBottom: 8, - }, - reactLogo: { - height: 178, - width: 290, - bottom: 0, - left: 0, - position: 'absolute', - }, -}); diff --git a/app/+not-found.tsx b/app/+not-found.tsx deleted file mode 100644 index 963b04f..0000000 --- a/app/+not-found.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { Link, Stack } from 'expo-router'; -import { StyleSheet } from 'react-native'; - -import { ThemedText } from '@/components/ThemedText'; -import { ThemedView } from '@/components/ThemedView'; - -export default function NotFoundScreen() { - return ( - <> - - - This screen doesn't exist. - - Go to home screen! - - - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - alignItems: 'center', - justifyContent: 'center', - padding: 20, - }, - link: { - marginTop: 15, - paddingVertical: 15, - }, -}); diff --git a/app/_layout.tsx b/app/_layout.tsx deleted file mode 100644 index db74578..0000000 --- a/app/_layout.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native'; -import { useFonts } from 'expo-font'; -import { Stack } from 'expo-router'; -import * as SplashScreen from 'expo-splash-screen'; -import { StatusBar } from 'expo-status-bar'; -import { useEffect } from 'react'; -import 'react-native-reanimated'; - -import { useColorScheme } from '@/hooks/useColorScheme'; - -// Prevent the splash screen from auto-hiding before asset loading is complete. -SplashScreen.preventAutoHideAsync(); - -export default function RootLayout() { - const colorScheme = useColorScheme(); - const [loaded] = useFonts({ - SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'), - }); - - useEffect(() => { - if (loaded) { - SplashScreen.hideAsync(); - } - }, [loaded]); - - if (!loaded) { - return null; - } - - return ( - - - - - - - - ); -} diff --git a/app/index.tsx b/app/index.tsx new file mode 100644 index 0000000..d48d18c --- /dev/null +++ b/app/index.tsx @@ -0,0 +1,95 @@ +import React, { useState } from 'react'; +import { View, Text, TextInput, Button, StyleSheet } from 'react-native'; + +const BMICalculator = () => { + const [weight, setWeight] = useState(''); + const [height, setHeight] = useState(''); + const [bmi, setBmi] = useState(null); + const [status, setStatus] = useState(''); + + const calculateBMI = () => { + const w = parseFloat(weight); + const h = parseFloat(height) / 100; + if (w > 0 && h > 0) { + const bmiValue = (w / (h * h)).toFixed(2); + setBmi(bmiValue); + setStatus(getBMIStatus(bmiValue)); + } else { + setBmi(null); + setStatus(''); + } + }; + + const getBMIStatus = (bmi: string): string => { + const bmiValue = parseFloat(bmi); + if (bmiValue < 18.5) return 'Alulsúlyos'; + if (bmiValue < 24.9) return 'Normál súlyú'; + if (bmiValue < 29.9) return 'Túlsúlyos'; + return 'Elhízott'; + }; + + return ( + + BMI Kalkulátor + + +