bug fixed complated
This commit is contained in:
@@ -9,12 +9,14 @@ import { useEffect, useRef } from 'react';
|
|||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { Animated, Easing, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
|
import { Animated, Easing, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
|
||||||
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
||||||
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||||
|
|
||||||
export default function TabsLayout() {
|
export default function TabsLayout() {
|
||||||
const { isDark } = useTheme();
|
const { isDark } = useTheme();
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { setShowFilter, setStep } = useHomeStore();
|
const { setShowFilter, setStep } = useHomeStore();
|
||||||
const rotateAnim = useRef(new Animated.Value(0)).current;
|
const rotateAnim = useRef(new Animated.Value(0)).current;
|
||||||
|
const insets = useSafeAreaInsets();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
Animated.loop(
|
Animated.loop(
|
||||||
@@ -54,7 +56,7 @@ export default function TabsLayout() {
|
|||||||
position: 'absolute',
|
position: 'absolute',
|
||||||
left: 16,
|
left: 16,
|
||||||
right: 16,
|
right: 16,
|
||||||
bottom: 4,
|
bottom: 8,
|
||||||
height: 70,
|
height: 70,
|
||||||
paddingTop: 8,
|
paddingTop: 8,
|
||||||
paddingBottom: 12,
|
paddingBottom: 12,
|
||||||
|
|||||||
@@ -7,33 +7,23 @@ import { ProfileDataProvider } from '@/screens/profile/lib/ProfileDataContext';
|
|||||||
import { Stack } from 'expo-router';
|
import { Stack } from 'expo-router';
|
||||||
import { StatusBar } from 'expo-status-bar';
|
import { StatusBar } from 'expo-status-bar';
|
||||||
import { I18nextProvider } from 'react-i18next';
|
import { I18nextProvider } from 'react-i18next';
|
||||||
import { View } from 'react-native';
|
|
||||||
import 'react-native-reanimated';
|
import 'react-native-reanimated';
|
||||||
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
import { SafeAreaView } from 'react-native-safe-area-context';
|
||||||
import ToastManager from "toastify-react-native";
|
import ToastManager from "toastify-react-native";
|
||||||
|
|
||||||
function AppContent() {
|
function AppContent() {
|
||||||
useNotifications();
|
useNotifications();
|
||||||
const insets = useSafeAreaInsets();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<SafeAreaView style={{ flex: 1 }}>
|
||||||
{/* iOS status bar fon */}
|
|
||||||
<View
|
|
||||||
style={{
|
|
||||||
height: insets.top,
|
|
||||||
backgroundColor: '#000',
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
|
|
||||||
{/* StatusBar */}
|
|
||||||
<StatusBar
|
<StatusBar
|
||||||
style="light"
|
style="dark"
|
||||||
backgroundColor="#000" // Android
|
backgroundColor="#fff"
|
||||||
|
translucent={false}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Stack screenOptions={{ headerShown: false }} />
|
<Stack screenOptions={{ headerShown: false }} />
|
||||||
</>
|
</SafeAreaView>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
export default function RootLayout() {
|
export default function RootLayout() {
|
||||||
|
|||||||
@@ -272,7 +272,6 @@ export default function ProductList({ query }: Props) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
listContainer: { gap: 0, paddingBottom: 20 },
|
|
||||||
card: {
|
card: {
|
||||||
borderRadius: 16,
|
borderRadius: 16,
|
||||||
overflow: 'hidden',
|
overflow: 'hidden',
|
||||||
|
|||||||
@@ -185,9 +185,11 @@ export default function CreateAdsScreens() {
|
|||||||
onSuccess: async (res, variables) => {
|
onSuccess: async (res, variables) => {
|
||||||
if (variables.paymentType === 'payme') {
|
if (variables.paymentType === 'payme') {
|
||||||
await Linking.openURL(res.data.url);
|
await Linking.openURL(res.data.url);
|
||||||
router.push('/(dashboard)/announcements');
|
bottomSheetModalRef.current?.dismiss();
|
||||||
|
router.push('/profile/my-ads');
|
||||||
} else {
|
} else {
|
||||||
router.push('/(dashboard)/announcements');
|
bottomSheetModalRef.current?.dismiss();
|
||||||
|
router.push('/profile/my-ads')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onError: (err: AxiosError) => {
|
onError: (err: AxiosError) => {
|
||||||
|
|||||||
@@ -234,10 +234,10 @@ const StepThree = forwardRef(({ formData, updateForm, data }: StepProps, ref) =>
|
|||||||
</Text>
|
</Text>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
|
|
||||||
<View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
|
|
||||||
<Text style={[styles.sectionTitle, { color: theme.text }]}>
|
<Text style={[styles.sectionTitle, { color: theme.text }]}>
|
||||||
{t('Reklama joylashtirish kompaniyasi')}
|
{t('Reklama joylashtirish kompaniyasi')}
|
||||||
</Text>
|
</Text>
|
||||||
|
<View style={{ flexDirection: 'column', justifyContent: 'space-between', alignItems: 'flex-end', marginBottom: 10 }}>
|
||||||
<TouchableOpacity
|
<TouchableOpacity
|
||||||
style={[
|
style={[
|
||||||
styles.selectAllButton,
|
styles.selectAllButton,
|
||||||
@@ -330,7 +330,7 @@ const styles = StyleSheet.create({
|
|||||||
marginBottom: 12,
|
marginBottom: 12,
|
||||||
},
|
},
|
||||||
pickerText: { fontSize: 16 },
|
pickerText: { fontSize: 16 },
|
||||||
sectionTitle: { fontSize: 16, fontWeight: '700', marginVertical: 12 },
|
sectionTitle: { fontSize: 16, fontWeight: '700', marginVertical: 12, },
|
||||||
companyItem: {
|
companyItem: {
|
||||||
width: 55,
|
width: 55,
|
||||||
height: 55,
|
height: 55,
|
||||||
|
|||||||
@@ -39,11 +39,14 @@ export default function EServicesCategoryScreen() {
|
|||||||
|
|
||||||
const handleOpenBrowser = async (fileUrl: string) => {
|
const handleOpenBrowser = async (fileUrl: string) => {
|
||||||
try {
|
try {
|
||||||
await WebBrowser.openBrowserAsync(fileUrl);
|
await WebBrowser.openBrowserAsync(fileUrl, {
|
||||||
|
dismissButtonStyle: 'close',
|
||||||
|
presentationStyle: WebBrowser.WebBrowserPresentationStyle.FULL_SCREEN,
|
||||||
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Toast.error(t("Xatolik yuz berdi"));
|
Toast.error(t("Xatolik yuz berdi"));
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
const onRefresh = async () => {
|
const onRefresh = async () => {
|
||||||
setRefreshing(true);
|
setRefreshing(true);
|
||||||
|
|||||||
Reference in New Issue
Block a user