complated
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
import { useAuth } from '@/components/AuthProvider';
|
||||
import { registerForPushNotificationsAsync } from '@/components/NotificationProvider';
|
||||
import AuthHeader from '@/components/ui/AuthHeader';
|
||||
import { commonRequests } from '@/hooks/useNotifications';
|
||||
import AsyncStorage from '@react-native-async-storage/async-storage';
|
||||
import { useMutation } from '@tanstack/react-query';
|
||||
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
||||
import * as Haptics from 'expo-haptics';
|
||||
import { LinearGradient } from 'expo-linear-gradient';
|
||||
import { Redirect, useRouter } from 'expo-router';
|
||||
@@ -26,6 +28,7 @@ import ConfirmForm from './ConfirmForm';
|
||||
|
||||
const ConfirmScreen = () => {
|
||||
const router = useRouter();
|
||||
const queryClient = useQueryClient();
|
||||
const [phoneOTP, setPhone] = useState<string | null>('');
|
||||
const [error, setError] = useState<string>('');
|
||||
const { login } = useAuth();
|
||||
@@ -59,11 +62,27 @@ const ConfirmScreen = () => {
|
||||
const { mutate, isPending } = useMutation({
|
||||
mutationFn: (body: { code: string; phone: string }) => auth_api.verify_otp(body),
|
||||
onSuccess: async (res) => {
|
||||
// Tokenlarni saqlash
|
||||
await AsyncStorage.removeItem('phone');
|
||||
await AsyncStorage.setItem('access_token', res.data.data.token.access);
|
||||
savedToken(res.data.data.token.access);
|
||||
await login(res.data.data.token.access);
|
||||
await AsyncStorage.setItem('refresh_token', res.data.data.token.refresh);
|
||||
await login(res.data.data.token.access);
|
||||
|
||||
// **Push tokenni qayta serverga yuborish**
|
||||
const pushToken = await registerForPushNotificationsAsync();
|
||||
if (pushToken) {
|
||||
await commonRequests.registerDevice({
|
||||
token: pushToken,
|
||||
platform: Platform.OS,
|
||||
});
|
||||
}
|
||||
|
||||
// Notification querylarni refetch
|
||||
queryClient.refetchQueries({ queryKey: ['notification-list'] });
|
||||
queryClient.refetchQueries({ queryKey: ['notifications-list'] });
|
||||
|
||||
// Dashboardga yo‘naltirish
|
||||
router.replace('/(dashboard)');
|
||||
},
|
||||
onError: (err: any) => {
|
||||
|
||||
Reference in New Issue
Block a user