profile card added
This commit is contained in:
@@ -37,6 +37,10 @@ const EditProfileModal = ({
|
||||
password: '',
|
||||
passport_serie: initialData.passport_serie || '',
|
||||
passport_id: initialData.passport_id ? initialData.passport_id.toString() : '',
|
||||
card_name: initialData.card_name || '',
|
||||
card_year: initialData.card_year ? initialData.card_year.toString() : '',
|
||||
card_month: initialData.card_month ? initialData.card_month.toString() : '',
|
||||
card_number: initialData.card_number ? initialData.card_number.toString() : '',
|
||||
});
|
||||
|
||||
const [errors, setErrors] = useState({});
|
||||
@@ -45,6 +49,10 @@ const EditProfileModal = ({
|
||||
const phoneInputRef = useRef(null);
|
||||
const passwordInputRef = useRef(null);
|
||||
const passportIdInputRef = useRef(null);
|
||||
const cardNameInputRef = useRef(null);
|
||||
const cardNumberInputRef = useRef(null);
|
||||
const cardMonthInputRef = useRef(null);
|
||||
const cardYearInputRef = useRef(null);
|
||||
|
||||
const validateForm = () => {
|
||||
const newErrors = {};
|
||||
@@ -72,7 +80,30 @@ const EditProfileModal = ({
|
||||
|
||||
// Passport ID validation (optional, but if provided should be number)
|
||||
if (formData.passport_id && !/^\d+$/.test(formData.passport_id.trim())) {
|
||||
newErrors.passport_id = 'Passport ID diňe sanlardan durmalı';
|
||||
newErrors.passport_id = 'Passport ID diňe sanlardan durmaly';
|
||||
}
|
||||
|
||||
// Card name validation (optional, max 255)
|
||||
if (formData.card_name && formData.card_name.length > 255) {
|
||||
newErrors.card_name = 'Kartyň ady 255 harpdan köp bolmaly däl';
|
||||
}
|
||||
|
||||
// Card number validation (optional, must be 16 digits)
|
||||
if (formData.card_number && !/^\d{16}$/.test(formData.card_number.trim())) {
|
||||
newErrors.card_number = 'Kart belgisi 16 sany sandan durmaly';
|
||||
}
|
||||
|
||||
// Card month validation (optional, 1-12)
|
||||
if (formData.card_month) {
|
||||
const month = parseInt(formData.card_month.trim(), 10);
|
||||
if (!/^\d{1,2}$/.test(formData.card_month.trim()) || month < 1 || month > 12) {
|
||||
newErrors.card_month = 'Aý 01-den 12-e çenli bolmaly';
|
||||
}
|
||||
}
|
||||
|
||||
// Card year validation (optional, 4 digits and reasonable year)
|
||||
if (formData.card_year && !/^\d{4}$/.test(formData.card_year.trim())) {
|
||||
newErrors.card_year = 'Ýyl 4 sany sandan durmaly';
|
||||
}
|
||||
|
||||
setErrors(newErrors);
|
||||
@@ -103,6 +134,22 @@ const EditProfileModal = ({
|
||||
updateData.passport_id = formData.passport_id.trim();
|
||||
}
|
||||
|
||||
if (formData.card_name) {
|
||||
updateData.card_name = formData.card_name.trim();
|
||||
}
|
||||
|
||||
if (formData.card_month) {
|
||||
updateData.card_month = parseInt(formData.card_month.trim());
|
||||
}
|
||||
|
||||
if (formData.card_year) {
|
||||
updateData.card_year = parseInt(formData.card_year.trim());
|
||||
}
|
||||
|
||||
if (formData.card_number) {
|
||||
updateData.card_number = formData.card_number.trim();
|
||||
}
|
||||
|
||||
onSave(updateData);
|
||||
};
|
||||
|
||||
@@ -114,6 +161,10 @@ const EditProfileModal = ({
|
||||
password: '',
|
||||
passport_serie: initialData.passport_serie || '',
|
||||
passport_id: initialData.passport_id ? initialData.passport_id.toString() : '',
|
||||
card_name: initialData.card_name || '',
|
||||
card_year: initialData.card_year ? initialData.card_year.toString() : '',
|
||||
card_month: initialData.card_month ? initialData.card_month.toString() : '',
|
||||
card_number: initialData.card_number ? initialData.card_number.toString() : '',
|
||||
});
|
||||
setErrors({});
|
||||
onClose();
|
||||
@@ -282,6 +333,57 @@ const EditProfileModal = ({
|
||||
onChangeText={(value) => updateFormData('passport_id', value)}
|
||||
error={errors.passport_id}
|
||||
keyboardType="numeric"
|
||||
returnKeyType="next"
|
||||
onSubmitEditing={() => cardNameInputRef.current?.focus()}
|
||||
/>
|
||||
</View>
|
||||
|
||||
<View style={styles.formSection}>
|
||||
<Text style={styles.sectionTitle}>Kart maglumatlary</Text>
|
||||
|
||||
<Input
|
||||
ref={cardNameInputRef}
|
||||
label="Kartdaky ady"
|
||||
value={formData.card_name}
|
||||
onChangeText={(value) => updateFormData('card_name', value)}
|
||||
error={errors.card_name}
|
||||
maxLength={255}
|
||||
returnKeyType="next"
|
||||
onSubmitEditing={() => cardNumberInputRef.current?.focus()}
|
||||
/>
|
||||
|
||||
<Input
|
||||
ref={cardNumberInputRef}
|
||||
label="Kart belgisi"
|
||||
value={formData.card_number}
|
||||
onChangeText={(value) => updateFormData('card_number', value)}
|
||||
error={errors.card_number}
|
||||
keyboardType="numeric"
|
||||
maxLength={16}
|
||||
returnKeyType="next"
|
||||
onSubmitEditing={() => cardMonthInputRef.current?.focus()}
|
||||
/>
|
||||
|
||||
<Input
|
||||
ref={cardMonthInputRef}
|
||||
label="Kart aýy (MM)"
|
||||
value={formData.card_month}
|
||||
onChangeText={(value) => updateFormData('card_month', value)}
|
||||
error={errors.card_month}
|
||||
keyboardType="numeric"
|
||||
maxLength={2}
|
||||
returnKeyType="next"
|
||||
onSubmitEditing={() => cardYearInputRef.current?.focus()}
|
||||
/>
|
||||
|
||||
<Input
|
||||
ref={cardYearInputRef}
|
||||
label="Kartyň senesi (YYYY)"
|
||||
value={formData.card_year}
|
||||
onChangeText={(value) => updateFormData('card_year', value)}
|
||||
error={errors.card_year}
|
||||
keyboardType="numeric"
|
||||
maxLength={4}
|
||||
returnKeyType="done"
|
||||
/>
|
||||
</View>
|
||||
|
||||
Reference in New Issue
Block a user