Files
birthday/apk/app/add.tsx
2026-04-21 17:52:21 +02:00

106 lines
2.5 KiB
TypeScript

import DateTimePicker from "@react-native-community/datetimepicker";
import { useRouter } from "expo-router";
import React, { useState } from "react";
import {
Button,
KeyboardAvoidingView,
Platform,
ScrollView,
StyleSheet,
Text,
TextInput,
View,
} from "react-native";
import { SafeAreaView } from "react-native-safe-area-context";
export default function SimpleForm() {
const router = useRouter();
const [name, setName] = useState("");
const [date, setDate] = useState(new Date());
const [showPicker, setShowPicker] = useState(false);
const onChangeDate = (event, selectedDate) => {
setShowPicker(Platform.OS === "ios");
if (selectedDate) {
setDate(selectedDate);
}
};
const handleSubmit = () => {
alert(`Name: ${name}\nDate: ${date.toDateString()}`);
router.push("/");
};
return (
<SafeAreaView style={styles.safeArea} edges={["top", "bottom"]}>
<KeyboardAvoidingView
style={styles.keyboardContainer}
behavior={Platform.OS === "ios" ? "padding" : undefined}
>
<ScrollView
contentContainerStyle={styles.scrollContent}
keyboardShouldPersistTaps="handled"
>
<View style={styles.formCard}>
<Text style={styles.label}>Name:</Text>
<TextInput
style={styles.input}
placeholder="Enter your name"
value={name}
onChangeText={setName}
/>
<Text style={styles.label}>Date:</Text>
<Button title="Select Date" onPress={() => setShowPicker(true)} />
<Text style={styles.dateText}>{date.toDateString()}</Text>
{showPicker && (
<DateTimePicker
value={date}
mode="date"
display="default"
onChange={onChangeDate}
/>
)}
<Button title="Submit" onPress={handleSubmit} />
</View>
</ScrollView>
</KeyboardAvoidingView>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
safeArea: {
flex: 1,
backgroundColor: "#fff",
},
keyboardContainer: {
flex: 1,
},
scrollContent: {
flexGrow: 1,
justifyContent: "center",
padding: 20,
},
formCard: {
gap: 12,
},
label: {
fontSize: 16,
},
input: {
borderWidth: 1,
borderColor: "#ccc",
padding: 10,
marginBottom: 15,
borderRadius: 5,
},
dateText: {
fontSize: 16,
marginBottom: 8,
},
});