TIF_NGANJUK_E41212433/screens/password/InputContact.js

142 lines
3.6 KiB
JavaScript

import React, { useState } from "react";
import {
View,
Text,
TextInput,
TouchableOpacity,
StyleSheet,
Alert,
} from "react-native";
import { Ionicons } from "@expo/vector-icons"; // Import Ionicons untuk ikon
export default function InputContact({ route, navigation }) {
const { method } = route.params; // Mendapatkan 'method' yang diteruskan dari halaman sebelumnya
const [contactInfo, setContactInfo] = useState(""); // Input untuk nomor WhatsApp atau email
const handleSubmit = async () => {
// Validasi input berdasarkan metode
if (!contactInfo) {
Alert.alert(
"Peringatan",
"Nomor WhatsApp atau Email tidak boleh kosong!"
);
return;
}
if (method === "whatsapp" && !/^\d+$/.test(contactInfo)) {
Alert.alert("Peringatan", "Masukkan nomor WhatsApp yang valid!");
return;
}
if (method === "email" && !/\S+@\S+\.\S+/.test(contactInfo)) {
Alert.alert("Peringatan", "Masukkan email yang valid!");
return;
}
try {
// Kirim nomor WhatsApp atau email ke API untuk verifikasi (sesuaikan dengan backend)
// await sendContactInfo(contactInfo, method);
// Navigasi ke halaman verifikasi kode
navigation.navigate("VerifyCode"); // Pastikan halaman "VerifyCode" sudah terdaftar dalam navigator
} catch (error) {
Alert.alert("Error", "Terjadi kesalahan saat mengirim data.");
}
};
return (
<View style={styles.container}>
{/* Header dengan tombol kembali */}
<View style={styles.header}>
<TouchableOpacity
onPress={() => navigation.goBack()}
style={styles.backButton}
>
<Ionicons name="arrow-back" size={24} color="#000" />
</TouchableOpacity>
<View style={styles.headerTextContainer}>
<Text style={styles.title}>LUPA KATA SANDI</Text>
</View>
</View>
<Text style={styles.subtitle}>
Masukkan {method === "whatsapp" ? "Nomor WhatsApp" : "Email"}
</Text>
<TextInput
style={styles.input}
placeholder={method === "whatsapp" ? "Nomor WhatsApp" : "Email"}
value={contactInfo}
onChangeText={setContactInfo}
keyboardType={method === "whatsapp" ? "numeric" : "email-address"}
/>
<TouchableOpacity
style={styles.button}
onPress={() => navigation.navigate("VerifyCode")}
>
<Text style={styles.buttonText}>KIRIM KODE</Text>
</TouchableOpacity>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "flex-start",
alignItems: "center",
backgroundColor: "#FFF",
},
header: {
flexDirection: "row",
alignItems: "center",
justifyContent: "flex-start",
width: "100%",
padding: 10,
backgroundColor: "#FFF",
borderBottomWidth: 0,
borderBottomColor: "#e0e0e0",
marginTop: 30,
},
backButton: {
padding: 10,
},
headerTextContainer: {
flex: 1,
alignItems: "flex-start",
justifyContent: "center",
},
title: {
fontSize: 20,
fontWeight: "bold",
color: "#000",
},
subtitle: {
fontSize: 16,
marginVertical: 20,
color: "#8e8e8e",
},
input: {
width: "90%",
padding: 15,
marginBottom: 20,
borderWidth: 1,
borderRadius: 15,
borderColor: "#8e8e8e",
fontSize: 16,
},
button: {
width: "90%",
padding: 15,
backgroundColor: "#2D572C", // Warna hijau untuk tombol kirim
alignItems: "center",
borderRadius: 15,
},
buttonText: {
color: "#fff",
fontSize: 16,
fontWeight: "bold",
},
});