Browse Source

small fixes

Viktoriia 1 year ago
parent
commit
780bcc02d7

+ 1 - 1
src/components/WarningModal/index.tsx

@@ -102,7 +102,7 @@ export const WarningModal = ({
           textColor: Colors.WHITE,
           textColor: Colors.WHITE,
           color: Colors.ORANGE,
           color: Colors.ORANGE,
           action: () => {
           action: () => {
-            onClose;
+            onClose();
             action && action();
             action && action();
           },
           },
           borderColor: Colors.ORANGE
           borderColor: Colors.ORANGE

+ 8 - 7
src/modules/api/ranking/queries/use-post-get-full-ranking.tsx

@@ -1,17 +1,18 @@
-import { useMutation } from '@tanstack/react-query';
+import { useQuery } from '@tanstack/react-query';
 
 
 import { rankingQueryKeys } from '../ranking-query-keys';
 import { rankingQueryKeys } from '../ranking-query-keys';
 import { type PostGetRanking, rankingApi } from '../ranking-api';
 import { type PostGetRanking, rankingApi } from '../ranking-api';
 
 
 import type { BaseAxiosError } from '../../../../types';
 import type { BaseAxiosError } from '../../../../types';
 
 
-export const fetchFullRanking = () => {
-  return useMutation<PostGetRanking, BaseAxiosError, void>({
-    mutationKey: rankingQueryKeys.getFullRanking(),
-    mutationFn: async () => {
+export const useGetFullRanking = () => {
+  return useQuery<PostGetRanking, BaseAxiosError>({
+    queryKey: rankingQueryKeys.getFullRanking(),
+    queryFn: async () => {
       const response = await rankingApi.getFullRanking();
       const response = await rankingApi.getFullRanking();
-      
       return response.data;
       return response.data;
-    }
+    },
+    gcTime: 0,
+    staleTime: 0,
   });
   });
 };
 };

+ 20 - 10
src/screens/InAppScreens/TravellersScreen/MasterRankingScreen/index.tsx

@@ -1,8 +1,8 @@
-import React, { useCallback, useState } from 'react';
+import React, { useCallback, useEffect, useState } from 'react';
 import { useFocusEffect } from '@react-navigation/native';
 import { useFocusEffect } from '@react-navigation/native';
 import { FlatList } from 'react-native';
 import { FlatList } from 'react-native';
 
 
-import { fetchFullRanking, usePostGetCountriesRanking } from '@api/ranking';
+import { useGetFullRanking, usePostGetCountriesRanking } from '@api/ranking';
 
 
 import { Header, Loading, PageWrapper } from '../../../../components';
 import { Header, Loading, PageWrapper } from '../../../../components';
 import { storage, StoreType } from '../../../../storage';
 import { storage, StoreType } from '../../../../storage';
@@ -17,11 +17,12 @@ import type { Ranking } from '..';
 import { useConnection } from 'src/contexts/ConnectionContext';
 import { useConnection } from 'src/contexts/ConnectionContext';
 
 
 const MasterRankingScreen = () => {
 const MasterRankingScreen = () => {
-  const { mutateAsync } = fetchFullRanking();
+  const { data: fullData } = useGetFullRanking();
   const { data: masterCountries } = usePostGetCountriesRanking();
   const { data: masterCountries } = usePostGetCountriesRanking();
   const netInfo = useConnection();
   const netInfo = useConnection();
 
 
   const [masterRanking, setMasterRanking] = useState<Ranking[]>([]);
   const [masterRanking, setMasterRanking] = useState<Ranking[]>([]);
+  const [fullRanking, setFullRanking] = useState<Ranking[]>([]);
   const [isLoading, setIsLoading] = useState(true);
   const [isLoading, setIsLoading] = useState(true);
 
 
   const [filteredData, setFilteredData] = useState<Ranking[]>([]);
   const [filteredData, setFilteredData] = useState<Ranking[]>([]);
@@ -42,15 +43,17 @@ const MasterRankingScreen = () => {
     }, [])
     }, [])
   );
   );
 
 
+  useEffect(() => {
+    if (fullData) {
+      setFullRanking(fullData?.data?.sort((a: Ranking, b: Ranking) => b.score_nm - a.score_nm));
+    }
+  }, [fullData]);
+
   if (isLoading) return <Loading />;
   if (isLoading) return <Loading />;
 
 
   const getFullRanking = async () => {
   const getFullRanking = async () => {
-    if (netInfo?.isInternetReachable) {
-      await mutateAsync(undefined, {
-        onSuccess: (data) => {
-          setMasterRanking(data.data);
-        }
-      });
+    if (netInfo?.isInternetReachable && fullRanking) {
+      setMasterRanking(fullRanking);
     }
     }
   };
   };
 
 
@@ -61,7 +64,14 @@ const MasterRankingScreen = () => {
         setModalVisible={(value) => setModalVisible(value)}
         setModalVisible={(value) => setModalVisible(value)}
         applyFilter={(filterAge, filterRanking, filterCountry) => {
         applyFilter={(filterAge, filterRanking, filterCountry) => {
           setConfirmedValueRanking(filterRanking);
           setConfirmedValueRanking(filterRanking);
-          setFilteredData(applyModalSort(masterRanking, filterAge, filterRanking, filterCountry));
+          setFilteredData(
+            applyModalSort(
+              netInfo?.isInternetReachable && fullRanking ? fullRanking : masterRanking,
+              filterAge,
+              filterRanking,
+              filterCountry
+            )
+          );
           setModalVisible(false);
           setModalVisible(false);
         }}
         }}
         countriesData={masterCountries ? masterCountries.data : []}
         countriesData={masterCountries ? masterCountries.data : []}

+ 7 - 2
src/screens/InAppScreens/TravelsScreen/AddNewTripScreen/index.tsx

@@ -154,11 +154,13 @@ const AddNewTripScreen = ({ route }: { route: any }) => {
     if (regions && selectedDates) {
     if (regions && selectedDates) {
       const isStartDateInFuture =
       const isStartDateInFuture =
         selectedDates.split(' - ')[0] > new Date().toISOString().split('T')[0];
         selectedDates.split(' - ')[0] > new Date().toISOString().split('T')[0];
+      const isEndDateInPast =
+        selectedDates.split(' - ')[1] <= new Date().toISOString().split('T')[0];
       const regionsData = regions.map((region) => {
       const regionsData = regions.map((region) => {
         return {
         return {
           id: region.id,
           id: region.id,
           quality: region.quality ?? 3,
           quality: region.quality ?? 3,
-          status: isStartDateInFuture ? 0 : (Number(region.status) as 0 | 1),
+          status: isStartDateInFuture ? 0 : isEndDateInPast ? 1 : (Number(region.status) as 0 | 1),
           hidden: region.hidden
           hidden: region.hidden
         };
         };
       });
       });
@@ -184,11 +186,13 @@ const AddNewTripScreen = ({ route }: { route: any }) => {
     if (regions && selectedDates) {
     if (regions && selectedDates) {
       const isStartDateInFuture =
       const isStartDateInFuture =
         selectedDates.split(' - ')[0] > new Date().toISOString().split('T')[0];
         selectedDates.split(' - ')[0] > new Date().toISOString().split('T')[0];
+      const isEndDateInPast =
+        selectedDates.split(' - ')[1] <= new Date().toISOString().split('T')[0];
       const regionsData = regions.map((region) => {
       const regionsData = regions.map((region) => {
         return {
         return {
           id: region.id,
           id: region.id,
           quality: region.quality ?? 3,
           quality: region.quality ?? 3,
-          status: isStartDateInFuture ? 0 : (Number(region.status) as 0 | 1),
+          status: isStartDateInFuture ? 0 : isEndDateInPast ? 1 : (Number(region.status) as 0 | 1),
           hidden: region.hidden
           hidden: region.hidden
         };
         };
       });
       });
@@ -263,6 +267,7 @@ const AddNewTripScreen = ({ route }: { route: any }) => {
                     }}
                     }}
                     onHiddenChange={() => changeHiddenForRegion(region.id)}
                     onHiddenChange={() => changeHiddenForRegion(region.id)}
                     startDate={selectedDates ? selectedDates.split(' - ')[0] : null}
                     startDate={selectedDates ? selectedDates.split(' - ')[0] : null}
+                    endDate={selectedDates ? selectedDates.split(' - ')[1] : null}
                   />
                   />
                 );
                 );
               })}
               })}

+ 7 - 4
src/screens/InAppScreens/TravelsScreen/Components/RegionItem/index.tsx

@@ -18,7 +18,8 @@ const RegionItem = ({
   onToggleStatus,
   onToggleStatus,
   onQualityChange,
   onQualityChange,
   onHiddenChange,
   onHiddenChange,
-  startDate
+  startDate,
+  endDate
 }: {
 }: {
   region: RegionAddData;
   region: RegionAddData;
   onDelete: () => void;
   onDelete: () => void;
@@ -26,12 +27,14 @@ const RegionItem = ({
   onQualityChange: () => void;
   onQualityChange: () => void;
   onHiddenChange: () => void;
   onHiddenChange: () => void;
   startDate: string | null;
   startDate: string | null;
+  endDate: string | null;
 }) => {
 }) => {
   const name = region.region_name.split(/ – | - /);
   const name = region.region_name.split(/ – | - /);
   const qualityName = region.quality
   const qualityName = region.quality
     ? qualityOptions.find((q) => q.id === region.quality)?.name
     ? qualityOptions.find((q) => q.id === region.quality)?.name
     : 'Good Visit';
     : 'Good Visit';
   const disabled = !startDate || startDate > new Date().toISOString().split('T')[0];
   const disabled = !startDate || startDate > new Date().toISOString().split('T')[0];
+  const completed = Boolean(endDate && endDate <= new Date().toISOString().split('T')[0]);
 
 
   return (
   return (
     <View key={region.id} style={styles.regionItem}>
     <View key={region.id} style={styles.regionItem}>
@@ -69,19 +72,19 @@ const RegionItem = ({
         <TouchableOpacity
         <TouchableOpacity
           style={[
           style={[
             styles.markCompletedButton,
             styles.markCompletedButton,
-            disabled && {
+            (disabled || completed) && {
               backgroundColor: Colors.LIGHT_GRAY,
               backgroundColor: Colors.LIGHT_GRAY,
               borderColor: Colors.LIGHT_GRAY
               borderColor: Colors.LIGHT_GRAY
             }
             }
           ]}
           ]}
           onPress={onToggleStatus}
           onPress={onToggleStatus}
-          disabled={disabled}
+          disabled={disabled || completed}
         >
         >
           <View style={styles.completedContainer}>
           <View style={styles.completedContainer}>
             <View style={{ position: 'relative' }}>
             <View style={{ position: 'relative' }}>
               <SquareSvg />
               <SquareSvg />
             </View>
             </View>
-            {region.status === 1 && !disabled && (
+            {((region.status === 1 && !disabled) || completed) && (
               <View style={{ position: 'absolute', left: 2, top: 1 }}>
               <View style={{ position: 'absolute', left: 2, top: 1 }}>
                 <CheckSvg width={14} height={14} />
                 <CheckSvg width={14} height={14} />
               </View>
               </View>

+ 0 - 4
src/screens/ResetPasswordScreen/index.tsx

@@ -72,10 +72,6 @@ const ResetPasswordScreen: FC = () => {
           'Password reset link has been sent to your email. Please check your inbox for further instructions.'
           'Password reset link has been sent to your email. Please check your inbox for further instructions.'
         }
         }
         title="Success!"
         title="Success!"
-        action={() => {
-          setIsModalVisible(false);
-          navigation.goBack();
-        }}
       />
       />
     </PageWrapper>
     </PageWrapper>
   );
   );