import { View, Text, StyleSheet } from "react-native";
import { SignUpFormData, HandleSignUpFormDataChange } from "../../../../types/signup";
import NormalInput from "../../../global/normal_input";
import NormalButton from "../../../global/normal_button";
import { useState } from "react";

type CarInformationProps = {
	goToNextPage: () => void;
	handleFormDataChange: HandleSignUpFormDataChange;
	formData: SignUpFormData;
};

const CarInformation: React.FC<CarInformationProps> = ({ goToNextPage, handleFormDataChange, formData }) => {
	const [error, setError] = useState("");
	const handleNext = () => {
		if (formData.vehicleModel === "" || formData.vehicleModel === "" || formData.licensePlate === "") {
			setError("請確保所有資料都已填寫。");
		} else {
			setError("");
			goToNextPage();
		}
	};

	return (
		<>
			<View style={styles.container}>
				<Text style={styles.text}>您的車輛</Text>
				<View
					style={{
						display: "flex",
						flexDirection: "column",
						gap: 10,
					}}
				>
					<NormalInput
						placeholder={"車輛品牌"}
						onChangeText={(vehicleType) => handleFormDataChange("vehicleType", vehicleType)}
					/>
					<NormalInput
						placeholder={"車輛型號"}
						onChangeText={(vehicleModel) => handleFormDataChange("vehicleModel", vehicleModel)}
					/>
					<NormalInput
						placeholder="車輛號碼"
						onChangeText={(licensePlate) => handleFormDataChange("licensePlate", licensePlate)}
					/>
					<NormalButton
						title={<Text style={{ color: "#fff" }}>下一步</Text>}
						onPress={handleNext}
						extendedStyle={{}}
					/>
					{error && <Text style={styles.errorMessage}>{error}</Text>}
					<NormalButton
						title={<Text style={{ color: "#888888" }}>略過</Text>}
						onPress={goToNextPage}
						extendedStyle={{ backgroundColor: "transparent" }}
					/>
				</View>
			</View>
		</>
	);
};

const styles = StyleSheet.create({
	container: {
		flex: 1,
		marginHorizontal: 20,
	},
	text: {
		fontSize: 20,
		paddingBottom: 10,
	},
	errorMessage: {
		fontSize: 14,
		color: "#ff0033",
		fontWeight: "400",
		marginLeft: 10,
		marginTop: 10,
	},
});
export default CarInformation;
