Browse Source

added hidden field

Viktoriia 1 year ago
parent
commit
4c59913dbd

+ 3 - 0
assets/icons/travels-screens/check.svg

@@ -0,0 +1,3 @@
+<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M10.07 2.87008C10.2522 3.05233 10.2522 3.3478 10.07 3.53005L4.93662 8.66338C4.75438 8.84563 4.4589 8.84563 4.27666 8.66338L1.94332 6.33005C1.76108 6.1478 1.76108 5.85233 1.94332 5.67008C2.12557 5.48784 2.42105 5.48784 2.60329 5.67008L4.60664 7.67343L9.40999 2.87008C9.59224 2.68784 9.88771 2.68784 10.07 2.87008Z" fill="white"/>
+</svg>

+ 3 - 0
assets/icons/travels-screens/square.svg

@@ -0,0 +1,3 @@
+<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect x="1.25" y="0.5" width="15" height="15" rx="3.5" stroke="white"/>
+</svg>

+ 1 - 0
src/modules/api/trips/trips-api.tsx

@@ -64,6 +64,7 @@ export interface PostGetTripReturn extends ResponseType {
       quality: number;
       quality: number;
       status: 0 | 1;
       status: 0 | 1;
       hidden: boolean;
       hidden: boolean;
+      can_be_hidden: boolean;
     }[];
     }[];
   };
   };
 }
 }

+ 16 - 1
src/screens/InAppScreens/TravelsScreen/AddNewTripScreen/index.tsx

@@ -54,7 +54,9 @@ const AddNewTripScreen = ({ route }: { route: any }) => {
           return {
           return {
             ...newRegion,
             ...newRegion,
             quality: existingRegion ? existingRegion.quality : 3,
             quality: existingRegion ? existingRegion.quality : 3,
-            status: existingRegion ? existingRegion.status : 0
+            status: existingRegion ? existingRegion.status : 0,
+            can_be_hidden: existingRegion ? existingRegion.can_be_hidden : newRegion.hidden,
+            hidden: existingRegion ? existingRegion.hidden : false
           };
           };
         });
         });
 
 
@@ -117,6 +119,18 @@ const AddNewTripScreen = ({ route }: { route: any }) => {
       );
       );
   };
   };
 
 
+  const changeHiddenForRegion = (regionId: number | null) => {
+    regions &&
+      setRegions(
+        regions.map((region) => {
+          if (region.id === regionId) {
+            return { ...region, hidden: !region.hidden };
+          }
+          return region;
+        })
+      );
+  };
+
   const handleDeleteRegion = (regionId: number) => {
   const handleDeleteRegion = (regionId: number) => {
     regions && setRegions(regions.filter((region) => region.id !== regionId));
     regions && setRegions(regions.filter((region) => region.id !== regionId));
   };
   };
@@ -247,6 +261,7 @@ const AddNewTripScreen = ({ route }: { route: any }) => {
                       setSelectedRegionId(region.id);
                       setSelectedRegionId(region.id);
                       setQualitySelectorVisible(true);
                       setQualitySelectorVisible(true);
                     }}
                     }}
+                    onHiddenChange={() => changeHiddenForRegion(region.id)}
                     startDate={selectedDates ? selectedDates.split(' - ')[0] : null}
                     startDate={selectedDates ? selectedDates.split(' - ')[0] : null}
                   />
                   />
                 );
                 );

+ 49 - 19
src/screens/InAppScreens/TravelsScreen/Components/RegionItem/index.tsx

@@ -7,21 +7,24 @@ import { Colors } from 'src/theme';
 import { API_HOST } from 'src/constants';
 import { API_HOST } from 'src/constants';
 import { styles } from './styles';
 import { styles } from './styles';
 
 
-import MarkIcon from 'assets/icons/mark.svg';
 import TrashSvg from 'assets/icons/travels-screens/trash-solid.svg';
 import TrashSvg from 'assets/icons/travels-screens/trash-solid.svg';
 import ChevronIcon from 'assets/icons/travels-screens/down-arrow.svg';
 import ChevronIcon from 'assets/icons/travels-screens/down-arrow.svg';
+import CheckSvg from 'assets/icons/travels-screens/check.svg';
+import SquareSvg from 'assets/icons/travels-screens/square.svg';
 
 
 const RegionItem = ({
 const RegionItem = ({
   region,
   region,
   onDelete,
   onDelete,
   onToggleStatus,
   onToggleStatus,
   onQualityChange,
   onQualityChange,
+  onHiddenChange,
   startDate
   startDate
 }: {
 }: {
   region: RegionAddData;
   region: RegionAddData;
   onDelete: () => void;
   onDelete: () => void;
   onToggleStatus: () => void;
   onToggleStatus: () => void;
   onQualityChange: () => void;
   onQualityChange: () => void;
+  onHiddenChange: () => void;
   startDate: string | null;
   startDate: string | null;
 }) => {
 }) => {
   const name = region.region_name.split(/ – | - /);
   const name = region.region_name.split(/ – | - /);
@@ -64,30 +67,57 @@ const RegionItem = ({
         </TouchableOpacity>
         </TouchableOpacity>
 
 
         <TouchableOpacity
         <TouchableOpacity
-          style={
-            region.status === 1 && !disabled
-              ? styles.markNotCompletedButton
-              : [
-                  styles.markCompletedButton,
-                  disabled && {
-                    backgroundColor: Colors.LIGHT_GRAY,
-                    borderColor: Colors.LIGHT_GRAY
-                  }
-                ]
-          }
+          style={[
+            styles.markCompletedButton,
+            disabled && {
+              backgroundColor: Colors.LIGHT_GRAY,
+              borderColor: Colors.LIGHT_GRAY
+            }
+          ]}
           onPress={onToggleStatus}
           onPress={onToggleStatus}
           disabled={disabled}
           disabled={disabled}
         >
         >
-          {region.status === 1 && !disabled ? (
-            <View style={styles.completedContainer}>
-              <MarkIcon width={16} height={16} />
-              <Text style={styles.markNotCompletedButtonText}>Completed</Text>
+          <View style={styles.completedContainer}>
+            <View style={{ position: 'relative' }}>
+              <SquareSvg />
             </View>
             </View>
-          ) : (
-            <Text style={[styles.markCompletedButtonText]}>Mark Completed</Text>
-          )}
+            {region.status === 1 && !disabled && (
+              <View style={{ position: 'absolute', left: 2, top: 1 }}>
+                <CheckSvg width={14} height={14} />
+              </View>
+            )}
+            <Text style={styles.markCompletedButtonText}>Completed</Text>
+          </View>
         </TouchableOpacity>
         </TouchableOpacity>
       </View>
       </View>
+      {region.can_be_hidden && (
+        <View style={{ marginTop: 12, marginHorizontal: '25%' }}>
+          <TouchableOpacity
+            style={[
+              styles.markCompletedButton,
+              disabled && {
+                backgroundColor: Colors.LIGHT_GRAY,
+                borderColor: Colors.LIGHT_GRAY
+              }
+            ]}
+            onPress={onHiddenChange}
+            disabled={disabled}
+          >
+            <View style={styles.completedContainer}>
+              <View style={{ position: 'relative' }}>
+                <SquareSvg />
+              </View>
+              {region.hidden && (
+                <View style={{ position: 'absolute', left: 2, top: 1 }}>
+                  <CheckSvg width={14} height={14} />
+                </View>
+              )}
+
+              <Text style={styles.markCompletedButtonText}>Hidden</Text>
+            </View>
+          </TouchableOpacity>
+        </View>
+      )}
     </View>
     </View>
   );
   );
 };
 };

+ 1 - 0
src/screens/InAppScreens/TravelsScreen/utils/types.ts

@@ -75,4 +75,5 @@ export interface RegionAddData {
   status?: 0 | 1;
   status?: 0 | 1;
   hidden: boolean;
   hidden: boolean;
   name?: string;
   name?: string;
+  can_be_hidden?: boolean;
 }
 }