finished project
This commit is contained in:
95
app/index.tsx
Normal file
95
app/index.tsx
Normal file
@@ -0,0 +1,95 @@
|
||||
import React, { useState } from 'react';
|
||||
import { View, Text, TextInput, Button, StyleSheet } from 'react-native';
|
||||
|
||||
const BMICalculator = () => {
|
||||
const [weight, setWeight] = useState<string>('');
|
||||
const [height, setHeight] = useState<string>('');
|
||||
const [bmi, setBmi] = useState<string | null>(null);
|
||||
const [status, setStatus] = useState<string>('');
|
||||
|
||||
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 (
|
||||
<View style={styles.container}>
|
||||
<Text style={styles.title}>BMI Kalkulátor</Text>
|
||||
<TextInput
|
||||
style={styles.input}
|
||||
placeholder="Súly (kg)"
|
||||
keyboardType="numeric"
|
||||
value={weight}
|
||||
onChangeText={setWeight}
|
||||
/>
|
||||
<TextInput
|
||||
style={styles.input}
|
||||
placeholder="Magasság (cm)"
|
||||
keyboardType="numeric"
|
||||
value={height}
|
||||
onChangeText={setHeight}
|
||||
/>
|
||||
<Button title="BMI számítása" onPress={calculateBMI} />
|
||||
{bmi && (
|
||||
<View style={styles.resultContainer}>
|
||||
<Text style={styles.result}>BMI: {bmi}</Text>
|
||||
<Text style={styles.status}>{status}</Text>
|
||||
</View>
|
||||
)}
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
padding: 20,
|
||||
backgroundColor: '#f5f5f5',
|
||||
},
|
||||
title: {
|
||||
fontSize: 24,
|
||||
fontWeight: 'bold',
|
||||
marginBottom: 20,
|
||||
},
|
||||
input: {
|
||||
width: '80%',
|
||||
padding: 10,
|
||||
borderWidth: 1,
|
||||
borderColor: '#ccc',
|
||||
borderRadius: 5,
|
||||
marginBottom: 10,
|
||||
backgroundColor: '#fff',
|
||||
},
|
||||
resultContainer: {
|
||||
marginTop: 20,
|
||||
alignItems: 'center',
|
||||
},
|
||||
result: {
|
||||
fontSize: 20,
|
||||
fontWeight: 'bold',
|
||||
},
|
||||
status: {
|
||||
fontSize: 18,
|
||||
color: 'blue',
|
||||
},
|
||||
});
|
||||
|
||||
export default BMICalculator;
|
||||
Reference in New Issue
Block a user