Viktoriia пре 1 месец
родитељ
комит
de0d572bcf

+ 7 - 5
src/screens/InAppScreens/TravelsScreen/Components/MyRegionsItems/RegionItem.tsx

@@ -14,24 +14,26 @@ export const RegionItem = React.memo(
     item,
     updateRegion,
     dare = false,
-    token
+    token,
+    isTCCRegion = false
   }: {
     item: TCCRegion | DareRegion;
     updateRegion: (region: number, visits: 0 | 1) => void;
     dare?: boolean;
     token: string;
+    isTCCRegion?: boolean;
   }) => {
     const [name, ...rest] = item.name?.split(/ – | - /);
     const subname = rest?.join(' - ');
-    const { regionData, avatars } = useRegionData(item.id, dare);
+    const { regionData, avatars } = useRegionData(item.id, dare, !isTCCRegion);
 
-    const regionImg = regionData ? JSON.parse(regionData?.region_photos)[0] : '';
+    const regionImg = !isTCCRegion && regionData ? JSON.parse(regionData?.region_photos)[0] : '';
     const formattedCount = formatNumber(regionData?.visitors_count ?? 0);
 
     return (
       <View style={styles.regionItem}>
         <View style={styles.regionItemHeader}>
-          {regionImg && (
+          {!isTCCRegion && regionImg && (
             <Image source={{ uri: regionImg, cache: 'force-cache' }} style={styles.regionImage} />
           )}
           <View style={{ gap: 6, flex: 1 }}>
@@ -52,7 +54,7 @@ export const RegionItem = React.memo(
         <View style={styles.divider} />
 
         <View style={styles.regionItemContent}>
-          {avatars && (
+          {!isTCCRegion && avatars && (
             <View style={styles.userContainer}>
               <View style={styles.userImageContainer}>
                 {avatars &&

+ 1 - 0
src/screens/InAppScreens/TravelsScreen/RegionsScreen/index.tsx

@@ -338,6 +338,7 @@ const RegionsScreen = () => {
                     updateRegion={handleUpdateTCC}
                     key={item.id}
                     token={token}
+                    isTCCRegion={true}
                   />
                 ))}
               </View>

+ 5 - 3
src/screens/InAppScreens/TravelsScreen/utils/useRegionData.ts

@@ -5,13 +5,14 @@ import { getData } from 'src/modules/map/regionData';
 import { DbRegion } from './types';
 import { SQLiteDatabase } from 'expo-sqlite';
 
-const useRegionData = (regionId: number, dare: boolean = false) => {
+const useRegionData = (regionId: number, dare: boolean = false, enabled: boolean = true) => {
   const [regionData, setRegionData] = useState<DbRegion | null>(null);
   const [avatars, setAvatars] = useState<string[] | null>(null);
   const [db1, setDb1] = useState<SQLiteDatabase | null>(null);
   const [db2, setDb2] = useState<SQLiteDatabase | null>(null);
 
   useEffect(() => {
+    if (!enabled) return;
     const loadDatabases = async () => {
       const firstDb = await getFirstDatabase();
       const secondDb = await getSecondDatabase();
@@ -23,9 +24,10 @@ const useRegionData = (regionId: number, dare: boolean = false) => {
     if (!db1 || !db2) {
       loadDatabases();
     }
-  }, [db1, db2]);
+  }, [db1, db2, enabled]);
 
   useEffect(() => {
+    if (!enabled) return;
     const fetchRegionData = async () => {
       const db = dare ? db2 : db1;
       const tableName = dare ? 'places' : 'regions';
@@ -43,7 +45,7 @@ const useRegionData = (regionId: number, dare: boolean = false) => {
     };
 
     fetchRegionData();
-  }, [regionId, db1, db2]);
+  }, [regionId, db1, db2, enabled]);
 
   return { regionData, avatars };
 };