Viktoriia 4 місяців тому
батько
коміт
45b63da2b9

+ 3 - 4
src/database/index.ts

@@ -42,14 +42,13 @@ export const syncDataWithServer = async (): Promise<void> => {
   const { isConnected } = await checkInternetConnection();
 
   if (isConnected) {
-    console.log('Syncing data with server...');
     processSyncQueue();
+    await updateDarePlacesDb(lastUpdateDarePlaces);
     await updateMasterRanking();
-    await downloadFlags();
-    await updateAvatars(lastUpdateDate);
     await updateNmRegionsDb(lastUpdateNmRegions);
-    await updateDarePlacesDb(lastUpdateDarePlaces);
+    await downloadFlags();
     await initOfflineSetup();
+    // await updateAvatars(lastUpdateDate);
   }
 };
 

+ 1 - 1
src/screens/InAppScreens/MapScreen/UniversalSearch/index.tsx

@@ -215,7 +215,7 @@ const SearchModal = ({
       defaultOverlayOpacity={0.5}
     >
       <View style={[styles.modalContainer, { height: modalHeight }]}>
-        <TabViewDelayed>
+        <TabViewDelayed waitBeforeShow={300}>
           <TabView
             navigationState={{ index, routes }}
             renderScene={renderScene}

+ 39 - 12
src/screens/InAppScreens/MapScreen/index.tsx

@@ -187,8 +187,21 @@ let selected_region = {
   source: 'regions',
   'source-layer': 'regions',
   style: {
-    fillColor: 'rgba(57, 115, 172, 0.3)',
-    fillOutlineColor: '#3973ac'
+    fillColor: 'rgba(57, 115, 172, 0.3)'
+  },
+  maxzoom: 12
+};
+
+let selected_region_outline = {
+  id: 'selected_region_outline',
+  type: 'line',
+  source: 'regions',
+  'source-layer': 'regions',
+  style: {
+    lineColor: '#ED9334',
+    lineTranslate: [0, 0],
+    lineTranslateAnchor: 'map',
+    lineWidth: ['interpolate', ['linear'], ['zoom'], 0, 2, 4, 3, 5, 4, 12, 5]
   },
   maxzoom: 12
 };
@@ -1003,7 +1016,10 @@ const MapScreen: any = ({ navigation, route }: { navigation: any; route: any })
     handlePress();
   };
 
-  const handleRegionData = (regionData: any, avatars: string[]) => {
+  const handleRegionData = async (regionData: any, avatars: string[]) => {
+    if (!regionData) {
+      await refreshDatabases();
+    }
     setRegionData(regionData);
     setUserAvatars(avatars);
   };
@@ -1314,15 +1330,26 @@ const MapScreen: any = ({ navigation, route }: { navigation: any; route: any })
           </>
         )}
         {selectedRegion && type && (
-          <MapLibreRN.FillLayer
-            id={selected_region.id}
-            sourceID={type}
-            sourceLayerID={type}
-            filter={['==', 'id', selectedRegion]}
-            style={selected_region.style}
-            maxZoomLevel={selected_region.maxzoom}
-            belowLayerID="waterway-name"
-          />
+          <>
+            <MapLibreRN.FillLayer
+              id={selected_region.id}
+              sourceID={type}
+              sourceLayerID={type}
+              filter={['==', 'id', selectedRegion]}
+              style={selected_region.style}
+              maxZoomLevel={selected_region.maxzoom}
+              belowLayerID="waterway-name"
+            />
+            <MapLibreRN.LineLayer
+              id={selected_region_outline.id}
+              sourceID={type}
+              sourceLayerID={type}
+              filter={['==', 'id', selectedRegion]}
+              style={selected_region_outline.style as any}
+              maxZoomLevel={selected_region_outline.maxzoom}
+              belowLayerID="waterway-name"
+            />
+          </>
         )}
 
         <MapLibreRN.VectorSource

+ 2 - 2
src/screens/InAppScreens/TravellersScreen/Components/Profile.tsx

@@ -97,7 +97,7 @@ export const Profile: FC<Props> = ({
 
   const avatarBaseUri = netInfo?.isInternetReachable
     ? `${API_HOST}/img/avatars/`
-    : `${FileSystem.documentDirectory}avatars/`;
+    : null;
 
   const flagBaseUri = netInfo?.isInternetReachable
     ? `${API_HOST}/img/flags_new/`
@@ -242,7 +242,7 @@ export const Profile: FC<Props> = ({
         <TouchableOpacity onPress={() => handlePress()}>
           <View style={adaptiveStyle(ProfileStyles.profileRoot, {})}>
             <View style={ProfileStyles.avatarContainer}>
-              {avatar ? (
+              {avatar && avatarBaseUri ? (
                 <Grayscale amount={index === -1 ? 1 : 0}>
                   <Image
                     style={adaptiveStyle(ProfileStyles.profileAvatar, {})}

+ 2 - 2
src/screens/InAppScreens/TravellersScreen/Components/SeriesRankingItem.tsx

@@ -37,7 +37,7 @@ const SeriesRankingItem = React.memo(
 
     const avatarBaseUri = netInfo?.isInternetReachable
       ? API_HOST + item.avatar
-      : `${FileSystem.documentDirectory}avatars/${item.user_id}.webp`;
+      : null;
 
     const flagBaseUri = (flag: string) =>
       netInfo?.isInternetReachable
@@ -64,7 +64,7 @@ const SeriesRankingItem = React.memo(
               <Text style={ScoreStyles.rankText}>{index + 1}</Text>
             </View>
             <View style={{ marginLeft: 4 }}>
-              {item.avatar ? (
+              {item.avatar && avatarBaseUri ? (
                 <Image style={ProfileStyles.profileAvatar} source={{ uri: avatarBaseUri }} />
               ) : (
                 <AvatarWithInitials

+ 2 - 4
src/screens/InAppScreens/TravellersScreen/Components/TriumphItem.tsx

@@ -14,9 +14,7 @@ export const TriumphItem = React.memo(
     const [firstPart, secondPart] = item.text.split(' reached ');
     const [firstName, lastName] = item.name.split(' ');
 
-    const avatarBaseUri = netInfo?.isInternetReachable
-      ? API_HOST + item.avatar
-      : `${FileSystem.documentDirectory}avatars/${item.user_id}.webp`;
+    const avatarBaseUri = netInfo?.isInternetReachable ? API_HOST + item.avatar : null;
 
     const flagBaseUri = netInfo?.isInternetReachable
       ? API_HOST + item.flag
@@ -28,7 +26,7 @@ export const TriumphItem = React.memo(
 
     return (
       <TouchableOpacity onPress={handlePress} style={TriumphsStyles.itemContainer}>
-        {item.avatar ? (
+        {item.avatar && avatarBaseUri ? (
           <View>
             <Image source={{ uri: avatarBaseUri }} style={TriumphsStyles.avatar} />
             <Image source={{ uri: flagBaseUri }} style={TriumphsStyles.flag} />