diff --git a/screens/auth/register/RegisterForm.tsx b/screens/auth/register/RegisterForm.tsx index db7167a..46fbb21 100644 --- a/screens/auth/register/RegisterForm.tsx +++ b/screens/auth/register/RegisterForm.tsx @@ -25,15 +25,16 @@ import React, { useCallback, useMemo, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { ActivityIndicator, - KeyboardAvoidingView, - Platform, + Keyboard, ScrollView, StyleSheet, Text, TextInput, TouchableOpacity, - View, + TouchableWithoutFeedback, + View } from 'react-native'; +import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'; import { SafeAreaView } from 'react-native-safe-area-context'; import { auth_api } from '../login/lib/api'; import PhonePrefix from '../login/ui/PhonePrefix'; @@ -360,27 +361,27 @@ export default function RegisterFormScreen() { }; return ( - - - - - + + + + + - + + + - - - - + - {/* ---- Country BottomSheet ---- */} - - - {t('Davlat')} - + {/* ---- Country BottomSheet ---- */} + + + {t('Davlat')} + - {/* Search input */} - - - - + {/* Search input */} + + + + - item.id?.toString()} - contentContainerStyle={styles.listContainer} - showsVerticalScrollIndicator={false} - keyboardShouldPersistTaps="handled" - ListEmptyComponent={ - - {t('Natija topilmadi')} - - } - renderItem={({ item }: { item: any }) => { - const isSelected = item.flag?.toUpperCase() === selectedCountry; - const flagCode = item.flag ? item.flag.toLowerCase() : ''; - return ( - { - setSelectedCountry(item.flag?.toUpperCase()); - closeCountrySheet(); - }} - activeOpacity={0.7} - > - - {flagCode ? ( - - ) : ( - - )} - - {item.name} - - - {isSelected && ( - - + item.id?.toString()} + contentContainerStyle={styles.listContainer} + showsVerticalScrollIndicator={false} + keyboardShouldPersistTaps="handled" + ListEmptyComponent={ + + {t('Natija topilmadi')} + + } + renderItem={({ item }: { item: any }) => { + const isSelected = item.flag?.toUpperCase() === selectedCountry; + const flagCode = item.flag ? item.flag.toLowerCase() : ''; + return ( + { + setSelectedCountry(item.flag?.toUpperCase()); + closeCountrySheet(); + }} + activeOpacity={0.7} + > + + {flagCode ? ( + + ) : ( + + )} + + {item.name} + - )} - - ); - }} - /> - - - + {isSelected && ( + + + + )} + + ); + }} + /> + + + + ); } diff --git a/screens/create-ads/ui/CreateAdsScreens.tsx b/screens/create-ads/ui/CreateAdsScreens.tsx index 9162872..20637c2 100644 --- a/screens/create-ads/ui/CreateAdsScreens.tsx +++ b/screens/create-ads/ui/CreateAdsScreens.tsx @@ -1,5 +1,5 @@ import { useTheme } from '@/components/ThemeContext'; -import { BottomSheetBackdrop, BottomSheetModal, BottomSheetScrollView } from '@gorhom/bottom-sheet'; +import { BottomSheetBackdrop, BottomSheetModal, BottomSheetScrollView, TouchableWithoutFeedback } from '@gorhom/bottom-sheet'; import { useMutation, useQuery } from '@tanstack/react-query'; import { AxiosError } from 'axios'; import { router, useFocusEffect } from 'expo-router'; @@ -7,18 +7,19 @@ import React, { useCallback, useRef, useState } from 'react'; import { Alert, Image, - KeyboardAvoidingView, + Keyboard, Linking, ScrollView, StyleSheet, Text, TouchableOpacity, - View, + View } from 'react-native'; import OneClick from '@/assets/images/one_click.png'; import PAYME from '@/assets/images/Payme_NEW.png'; import { useTranslation } from 'react-i18next'; +import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'; import { price_calculation } from '../lib/api'; import { CreateAdsResponse } from '../lib/types'; import StepFour from './StepFour'; @@ -209,122 +210,127 @@ export default function CreateAdsScreens() { }; return ( - - - - - {t("Bir Zumda Jonatish")} - - - {currentStep === 1 && ( - - )} - {currentStep === 2 && ( - - )} - {currentStep === 3 && ( - + + - )} - {currentStep === 4 && } - - {currentStep > 1 && currentStep !== 4 && ( - setCurrentStep((s) => s - 1)} - > - - {t('Orqaga')} - - + + {t("Bir Zumda Jonatish")} + + + {currentStep === 1 && ( + )} - - { - let isValid = true; - - if (currentStep === 1) isValid = stepOneRef.current?.validate() ?? false; - if (currentStep === 2) isValid = stepTwoRef.current?.validate() ?? false; - if (currentStep === 3) isValid = stepThreeRef.current?.validate() ?? false; - - if (!isValid) return; - - if (currentStep < 3) setCurrentStep((s) => s + 1); - if (currentStep === 3) handleSubmit(); - if (currentStep === 4) handlePresentModalPress(); - }} - > - - {currentStep === 3 - ? t('Yaratish') - : currentStep === 4 - ? t("To'lash") - : t('Keyingisi')} - - - - - - {/* FOOTER */} - - {/* PAYMENT BOTTOM SHEET */} - - - - - {t("To'lov turini tanlang")} - + {currentStep === 2 && ( + + )} + {currentStep === 3 && ( + + )} + {currentStep === 4 && } + + {currentStep > 1 && currentStep !== 4 && ( + setCurrentStep((s) => s - 1)} + > + + {t('Orqaga')} + + + )} sendPayment('payme')} - > - - + style={styles.next} + disabled={isPending} + onPress={() => { + let isValid = true; - sendPayment('referral')} + if (currentStep === 1) isValid = stepOneRef.current?.validate() ?? false; + if (currentStep === 2) isValid = stepTwoRef.current?.validate() ?? false; + if (currentStep === 3) isValid = stepThreeRef.current?.validate() ?? false; + + if (!isValid) return; + + if (currentStep < 3) setCurrentStep((s) => s + 1); + if (currentStep === 3) handleSubmit(); + if (currentStep === 4) handlePresentModalPress(); + }} > - - {t('Referal orqali')} + + {currentStep === 3 + ? t('Yaratish') + : currentStep === 4 + ? t("To'lash") + : t('Keyingisi')} - - - + + + {/* FOOTER */} + + {/* PAYMENT BOTTOM SHEET */} + + + + + {t("To'lov turini tanlang")} + + + sendPayment('payme')} + > + + + + sendPayment('referral')} + > + + {t('Referal orqali')} + + + + + + + ); }