Oleksandr Honcharov 1 год назад
Родитель
Сommit
2823cda705

+ 1 - 1
assets/icons/facebook.svg

@@ -1,3 +1,3 @@
 <svg width="12" height="20" viewBox="0 0 12 20" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M3.125 11.6914V20H7.65625V11.6914H11.0352L11.7383 7.87109H7.65625V6.51953C7.65625 4.5 8.44922 3.72656 10.4961 3.72656C11.1328 3.72656 11.6445 3.74219 11.9414 3.77344V0.308594C11.3828 0.15625 10.0156 0 9.22656 0C5.05078 0 3.125 1.97266 3.125 6.22656V7.87109H0.546875V11.6914H3.125Z" fill="#C8C8C8"/>
+<path d="M3.125 11.6914V20H7.65625V11.6914H11.0352L11.7383 7.87109H7.65625V6.51953C7.65625 4.5 8.44922 3.72656 10.4961 3.72656C11.1328 3.72656 11.6445 3.74219 11.9414 3.77344V0.308594C11.3828 0.15625 10.0156 0 9.22656 0C5.05078 0 3.125 1.97266 3.125 6.22656V7.87109H0.546875V11.6914H3.125Z" />
 </svg>

+ 1 - 1
assets/icons/instagram.svg

@@ -1,3 +1,3 @@
 <svg width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M10.0044 5.29478C7.16511 5.29478 4.87493 7.58496 4.87493 10.4242C4.87493 13.2635 7.16511 15.5537 10.0044 15.5537C12.8437 15.5537 15.1339 13.2635 15.1339 10.4242C15.1339 7.58496 12.8437 5.29478 10.0044 5.29478ZM10.0044 13.7591C8.16957 13.7591 6.66957 12.2635 6.66957 10.4242C6.66957 8.58496 8.16511 7.08942 10.0044 7.08942C11.8437 7.08942 13.3392 8.58496 13.3392 10.4242C13.3392 12.2635 11.8392 13.7591 10.0044 13.7591ZM16.5401 5.08496C16.5401 5.75014 16.0044 6.28139 15.3437 6.28139C14.6785 6.28139 14.1473 5.74567 14.1473 5.08496C14.1473 4.42425 14.683 3.88853 15.3437 3.88853C16.0044 3.88853 16.5401 4.42425 16.5401 5.08496ZM19.9374 6.29925C19.8615 4.69657 19.4955 3.27693 18.3214 2.10728C17.1517 0.937639 15.7321 0.571568 14.1294 0.491211C12.4776 0.397461 7.52672 0.397461 5.87493 0.491211C4.27672 0.567104 2.85707 0.933175 1.68297 2.10282C0.508859 3.27246 0.147252 4.6921 0.0668945 6.29478C-0.0268555 7.94657 -0.0268555 12.8975 0.0668945 14.5492C0.142787 16.1519 0.508859 17.5716 1.68297 18.7412C2.85707 19.9109 4.27225 20.2769 5.87493 20.3573C7.52672 20.451 12.4776 20.451 14.1294 20.3573C15.7321 20.2814 17.1517 19.9153 18.3214 18.7412C19.491 17.5716 19.8571 16.1519 19.9374 14.5492C20.0312 12.8975 20.0312 7.95103 19.9374 6.29925ZM17.8035 16.3216C17.4553 17.1966 16.7812 17.8707 15.9017 18.2234C14.5848 18.7457 11.4598 18.6251 10.0044 18.6251C8.54904 18.6251 5.41957 18.7412 4.10707 18.2234C3.23207 17.8751 2.55797 17.201 2.20529 16.3216C1.68297 15.0046 1.8035 11.8796 1.8035 10.4242C1.8035 8.96889 1.68743 5.83942 2.20529 4.52693C2.5535 3.65192 3.22761 2.97782 4.10707 2.62514C5.42404 2.10282 8.54904 2.22335 10.0044 2.22335C11.4598 2.22335 14.5892 2.10728 15.9017 2.62514C16.7767 2.97335 17.4508 3.64746 17.8035 4.52693C18.3258 5.84389 18.2053 8.96889 18.2053 10.4242C18.2053 11.8796 18.3258 15.0091 17.8035 16.3216Z" fill="#C8C8C8"/>
+<path d="M10.0044 5.29478C7.16511 5.29478 4.87493 7.58496 4.87493 10.4242C4.87493 13.2635 7.16511 15.5537 10.0044 15.5537C12.8437 15.5537 15.1339 13.2635 15.1339 10.4242C15.1339 7.58496 12.8437 5.29478 10.0044 5.29478ZM10.0044 13.7591C8.16957 13.7591 6.66957 12.2635 6.66957 10.4242C6.66957 8.58496 8.16511 7.08942 10.0044 7.08942C11.8437 7.08942 13.3392 8.58496 13.3392 10.4242C13.3392 12.2635 11.8392 13.7591 10.0044 13.7591ZM16.5401 5.08496C16.5401 5.75014 16.0044 6.28139 15.3437 6.28139C14.6785 6.28139 14.1473 5.74567 14.1473 5.08496C14.1473 4.42425 14.683 3.88853 15.3437 3.88853C16.0044 3.88853 16.5401 4.42425 16.5401 5.08496ZM19.9374 6.29925C19.8615 4.69657 19.4955 3.27693 18.3214 2.10728C17.1517 0.937639 15.7321 0.571568 14.1294 0.491211C12.4776 0.397461 7.52672 0.397461 5.87493 0.491211C4.27672 0.567104 2.85707 0.933175 1.68297 2.10282C0.508859 3.27246 0.147252 4.6921 0.0668945 6.29478C-0.0268555 7.94657 -0.0268555 12.8975 0.0668945 14.5492C0.142787 16.1519 0.508859 17.5716 1.68297 18.7412C2.85707 19.9109 4.27225 20.2769 5.87493 20.3573C7.52672 20.451 12.4776 20.451 14.1294 20.3573C15.7321 20.2814 17.1517 19.9153 18.3214 18.7412C19.491 17.5716 19.8571 16.1519 19.9374 14.5492C20.0312 12.8975 20.0312 7.95103 19.9374 6.29925ZM17.8035 16.3216C17.4553 17.1966 16.7812 17.8707 15.9017 18.2234C14.5848 18.7457 11.4598 18.6251 10.0044 18.6251C8.54904 18.6251 5.41957 18.7412 4.10707 18.2234C3.23207 17.8751 2.55797 17.201 2.20529 16.3216C1.68297 15.0046 1.8035 11.8796 1.8035 10.4242C1.8035 8.96889 1.68743 5.83942 2.20529 4.52693C2.5535 3.65192 3.22761 2.97782 4.10707 2.62514C5.42404 2.10282 8.54904 2.22335 10.0044 2.22335C11.4598 2.22335 14.5892 2.10728 15.9017 2.62514C16.7767 2.97335 17.4508 3.64746 17.8035 4.52693C18.3258 5.84389 18.2053 8.96889 18.2053 10.4242C18.2053 11.8796 18.3258 15.0091 17.8035 16.3216Z" />
 </svg>

+ 2 - 2
assets/icons/link.svg

@@ -1,4 +1,4 @@
 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M10.6637 15.973L8.00899 18.6277C6.17926 20.4574 3.20204 20.4574 1.3723 18.6277C-0.457434 16.798 -0.457434 13.8207 1.3723 11.991L5.35432 8.00899C7.18405 6.17926 10.1613 6.17926 11.991 8.00899C12.3574 8.37534 12.3574 8.96999 11.991 9.33633C11.6247 9.70268 11.03 9.70268 10.6637 9.33633C9.56596 8.23862 7.77936 8.23862 6.68165 9.33633L2.69964 13.3183C1.60193 14.4161 1.60193 16.2027 2.69964 17.3004C3.79735 18.3981 5.58395 18.3981 6.68165 17.3004L9.33633 14.6457C9.70268 14.2793 10.2973 14.2793 10.6637 14.6457C11.03 15.012 11.03 15.6067 10.6637 15.973Z" fill="#C8C8C8"/>
-<path d="M18.6277 8.00899L14.6457 11.991C12.8159 13.8207 9.83873 13.8207 8.00899 11.991C7.64265 11.6247 7.64265 11.03 8.00899 10.6637C8.37534 10.2973 8.96999 10.2973 9.33633 10.6637C10.434 11.7614 12.2206 11.7614 13.3183 10.6637L17.3004 6.68165C18.3981 5.58395 18.3981 3.79735 17.3004 2.69964C16.2027 1.60193 14.4161 1.60193 13.3183 2.69964L10.6637 5.35432C10.2973 5.72066 9.70268 5.72066 9.33633 5.35432C8.96999 4.98797 8.96999 4.39332 9.33633 4.02698L11.991 1.3723C13.8207 -0.457434 16.798 -0.457434 18.6277 1.3723C20.4574 3.20204 20.4574 6.17926 18.6277 8.00899Z" fill="#C8C8C8"/>
+<path d="M10.6637 15.973L8.00899 18.6277C6.17926 20.4574 3.20204 20.4574 1.3723 18.6277C-0.457434 16.798 -0.457434 13.8207 1.3723 11.991L5.35432 8.00899C7.18405 6.17926 10.1613 6.17926 11.991 8.00899C12.3574 8.37534 12.3574 8.96999 11.991 9.33633C11.6247 9.70268 11.03 9.70268 10.6637 9.33633C9.56596 8.23862 7.77936 8.23862 6.68165 9.33633L2.69964 13.3183C1.60193 14.4161 1.60193 16.2027 2.69964 17.3004C3.79735 18.3981 5.58395 18.3981 6.68165 17.3004L9.33633 14.6457C9.70268 14.2793 10.2973 14.2793 10.6637 14.6457C11.03 15.012 11.03 15.6067 10.6637 15.973Z" />
+<path d="M18.6277 8.00899L14.6457 11.991C12.8159 13.8207 9.83873 13.8207 8.00899 11.991C7.64265 11.6247 7.64265 11.03 8.00899 10.6637C8.37534 10.2973 8.96999 10.2973 9.33633 10.6637C10.434 11.7614 12.2206 11.7614 13.3183 10.6637L17.3004 6.68165C18.3981 5.58395 18.3981 3.79735 17.3004 2.69964C16.2027 1.60193 14.4161 1.60193 13.3183 2.69964L10.6637 5.35432C10.2973 5.72066 9.70268 5.72066 9.33633 5.35432C8.96999 4.98797 8.96999 4.39332 9.33633 4.02698L11.991 1.3723C13.8207 -0.457434 16.798 -0.457434 18.6277 1.3723C20.4574 3.20204 20.4574 6.17926 18.6277 8.00899Z" />
 </svg>

+ 1 - 1
assets/icons/x(twitter).svg

@@ -1,3 +1,3 @@
 <svg width="20" height="19" viewBox="0 0 20 19" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M15.7497 0H18.8179L12.1165 7.65754L20 18.0791H13.8288L8.99174 11.7601L3.46371 18.0791H0.391134L7.55758 9.887L0 0H6.32768L10.6953 5.77575L15.7497 0ZM14.6719 16.2451H16.3711L5.402 1.73837H3.57671L14.6719 16.2451Z" fill="#C8C8C8"/>
+<path d="M15.7497 0H18.8179L12.1165 7.65754L20 18.0791H13.8288L8.99174 11.7601L3.46371 18.0791H0.391134L7.55758 9.887L0 0H6.32768L10.6953 5.77575L15.7497 0ZM14.6719 16.2451H16.3711L5.402 1.73837H3.57671L14.6719 16.2451Z" />
 </svg>

+ 1 - 1
assets/icons/youtube.svg

@@ -1,3 +1,3 @@
 <svg width="20" height="15" viewBox="0 0 20 15" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M19.5826 2.20066C19.3519 1.33285 18.6745 0.651776 17.814 0.421091C16.2541 0 10 0 10 0C10 0 3.74588 0 2.18601 0.421091C1.32552 0.651776 0.648114 1.33285 0.41743 2.20066C0 3.77151 0 7.04504 0 7.04504C0 7.04504 0 10.3186 0.41743 11.8894C0.648114 12.7572 1.32552 13.409 2.18601 13.6397C3.74588 14.0608 10 14.0608 10 14.0608C10 14.0608 16.2541 14.0608 17.814 13.6397C18.6745 13.409 19.3519 12.7536 19.5826 11.8894C20 10.3186 20 7.04504 20 7.04504C20 7.04504 20 3.77151 19.5826 2.20066ZM7.95679 10.0183V4.07177L13.182 7.04504L7.95679 10.0183Z" fill="#C8C8C8"/>
+<path d="M19.5826 2.20066C19.3519 1.33285 18.6745 0.651776 17.814 0.421091C16.2541 0 10 0 10 0C10 0 3.74588 0 2.18601 0.421091C1.32552 0.651776 0.648114 1.33285 0.41743 2.20066C0 3.77151 0 7.04504 0 7.04504C0 7.04504 0 10.3186 0.41743 11.8894C0.648114 12.7572 1.32552 13.409 2.18601 13.6397C3.74588 14.0608 10 14.0608 10 14.0608C10 14.0608 16.2541 14.0608 17.814 13.6397C18.6745 13.409 19.3519 12.7536 19.5826 11.8894C20 10.3186 20 7.04504 20 7.04504C20 7.04504 20 3.77151 19.5826 2.20066ZM7.95679 10.0183V4.07177L13.182 7.04504L7.95679 10.0183Z" />
 </svg>

+ 5 - 5
src/screens/InAppScreens/ProfileScreen/Profile/edit-personal-info.tsx

@@ -217,7 +217,7 @@ export const EditPersonalInfo = () => {
                 />
                 <BigText>Links</BigText>
                 <Input
-                  icon={<FacebookIcon />}
+                  icon={<FacebookIcon fill={Colors.LIGHT_GRAY} />}
                   placeholder={'https://www.facebook.com'}
                   inputMode={'text'}
                   onChange={props.handleChange('f')}
@@ -226,7 +226,7 @@ export const EditPersonalInfo = () => {
                   formikError={props.touched.f && props.errors.f}
                 />
                 <Input
-                  icon={<InstagramIcon />}
+                  icon={<InstagramIcon fill={Colors.LIGHT_GRAY} />}
                   placeholder={'https://www.instagram.com'}
                   inputMode={'text'}
                   onChange={props.handleChange('i')}
@@ -235,7 +235,7 @@ export const EditPersonalInfo = () => {
                   formikError={props.touched.i && props.errors.i}
                 />
                 <Input
-                  icon={<XIcon />}
+                  icon={<XIcon fill={Colors.LIGHT_GRAY} />}
                   placeholder={'https://www.twitter.com'}
                   inputMode={'text'}
                   onChange={props.handleChange('t')}
@@ -244,7 +244,7 @@ export const EditPersonalInfo = () => {
                   formikError={props.touched.t && props.errors.t}
                 />
                 <Input
-                  icon={<YoutubeIcon />}
+                  icon={<YoutubeIcon fill={Colors.LIGHT_GRAY} />}
                   placeholder={'https://www.youtube.com'}
                   inputMode={'text'}
                   onChange={props.handleChange('y')}
@@ -262,7 +262,7 @@ export const EditPersonalInfo = () => {
                   formikError={props.touched.www && props.errors.www}
                 />
                 <Input
-                  icon={<LinkIcon />}
+                  icon={<LinkIcon fill={Colors.LIGHT_GRAY} />}
                   placeholder={'Other link'}
                   inputMode={'text'}
                   onChange={props.handleChange('other')}

+ 103 - 148
src/screens/InAppScreens/ProfileScreen/index.tsx

@@ -4,62 +4,39 @@ import { Image } from 'expo-image';
 import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';
 import { NavigationProp } from '@react-navigation/native';
 
+import { type Score, type Series, type SocialData, usePostGetProfileInfoQuery } from '@api/user';
+
 import { PageWrapper } from '../../../components';
 import { Colors } from '../../../theme';
 import { styles } from './styles';
 
 import { API_HOST } from '../../../constants';
 
-import { usePostGetProfileQuery } from '@api/user';
-
 import { NAVIGATION_PAGES } from '../../../types';
 import { navigationOpts } from './navigation-opts';
 
 import { storage, StoreType } from '../../../storage';
 
-import PenIcon from '../../../../assets/icons/pen.svg';
-
 import { getFontSize, getYears } from '../../../utils';
 
-const regions = [
-  {
-    count: 28,
-    name: 'NM1301'
-  },
-  {
-    count: 1,
-    name: 'M@P'
-  },
-  {
-    count: 13,
-    name: 'UN'
-  },
-  {
-    count: 14,
-    name: 'UN+'
-  },
-  {
-    count: 16,
-    name: 'TCC'
-  },
-  {
-    count: 3,
-    name: 'WHS'
-  }
-];
+import IconFacebook from '../../../../assets/icons/facebook.svg';
+import IconInstagram from '../../../../assets/icons/instagram.svg';
+import IconTwitter from '../../../../assets/icons/x(twitter).svg';
+import IconYouTube from '../../../../assets/icons/youtube.svg';
+import IconGlobe from '../../../../assets/icons/bottom-navigation/globe.svg';
+import IconLink from '../../../../assets/icons/link.svg';
+import GearIcon from '../../../../assets/icons/gear.svg';
 
 const Tab = createMaterialTopTabNavigator();
 
-// TODO: refactor + connect with API
-
 type Props = {
   navigation: NavigationProp<any>;
 };
 
 const ProfileScreen: FC<Props> = ({ navigation }) => {
-  const token = storage.get('token', StoreType.STRING);
+  const token = storage.get('token', StoreType.STRING) as string;
 
-  const { data, error } = usePostGetProfileQuery(String(token), true);
+  const { data, error } = usePostGetProfileInfoQuery(token, true);
 
   if (!data) return <Text>Loading</Text>;
 
@@ -69,48 +46,43 @@ const ProfileScreen: FC<Props> = ({ navigation }) => {
         <View>
           <Image
             style={{ borderRadius: 64 / 2, width: 64, height: 64 }}
-            source={{
-              uri: API_HOST + '/img/avatars/' + data.avatar
-            }}
+            source={{ uri: API_HOST + data.avatar }}
           />
         </View>
-        <View>
-          <Text style={[styles.headerText, { fontSize: getFontSize(18) }]}>
+        <View style={{ gap: 5, width: '75%' }}>
+          <Text style={[styles.headerText, { fontSize: getFontSize(18), flex: 0 }]}>
             {data.first_name} {data.last_name}
           </Text>
-          <View style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', gap: 10 }}>
-            <Image
-              source={{
-                uri: API_HOST + '/img/flags_new/' + data.homebase + '.png'
-              }}
-              style={styles.countryFlag}
-            />
-            <Image
-              source={{
-                uri: 'https://upload.wikimedia.org/wikipedia/commons/b/b6/Flag_of_Canada.png'
+          <View style={{ display: 'flex', justifyContent: 'space-between', flexDirection: 'row' }}>
+            <View
+              style={{
+                display: 'flex',
+                flexDirection: 'row',
+                gap: 10,
+                alignItems: 'center'
               }}
-              style={[styles.countryFlag, { marginLeft: -15 }]}
-            />
-            <Text>Age: {getYears(data.date_of_birth)}</Text>
+            >
+              <Text
+                style={{ color: Colors.DARK_BLUE, fontWeight: '600', fontSize: getFontSize(12) }}
+              >
+                Age: {getYears(data.date_of_birth)}
+              </Text>
+              <Image source={{ uri: API_HOST + data.homebase_flag }} style={styles.countryFlag} />
+              {data.homebase2_flag ? (
+                <Image
+                  source={{ uri: API_HOST + data.homebase2_flag }}
+                  style={[styles.countryFlag, { marginLeft: -15 }]}
+                />
+              ) : null}
+            </View>
+
+            <View>
+              <TouchableOpacity onPress={() => navigation.navigate(NAVIGATION_PAGES.SETTINGS)}>
+                <GearIcon fill={Colors.DARK_BLUE} />
+              </TouchableOpacity>
+            </View>
           </View>
         </View>
-        <View>
-          <TouchableOpacity
-            style={{
-              width: 40,
-              height: 40,
-              borderRadius: 40 / 2,
-              borderWidth: 1,
-              borderColor: Colors.LIGHT_GRAY,
-              display: 'flex',
-              justifyContent: 'center',
-              alignItems: 'center'
-            }}
-            onPress={() => navigation.navigate(NAVIGATION_PAGES.EDIT_PERSONAL_INFO)}
-          >
-            <PenIcon />
-          </TouchableOpacity>
-        </View>
       </View>
       <Tab.Navigator
         screenOptions={{
@@ -123,10 +95,20 @@ const ProfileScreen: FC<Props> = ({ navigation }) => {
         <Tab.Screen
           name="Personal Info"
           component={() => (
-            <PersonalInfo data={{ bio: data.bio, date_of_birth: data.date_of_birth }} />
+            <PersonalInfo
+              data={{
+                bio: data.bio,
+                date_of_birth: data.date_of_birth,
+                scores: data.scores,
+                links: data.links,
+                homebase: data.homebase_name,
+                homebase2: data.homebase2_name,
+                series: data.series
+              }}
+            />
           )}
         />
-        <Tab.Screen name="Visited Regions" component={() => <Text>Visited Regions</Text>} />
+        <Tab.Screen name="Ranking" component={() => <Text>Visited Regions</Text>} />
         <Tab.Screen name="Photos" component={() => <Text>Photos</Text>} />
       </Tab.Navigator>
     </PageWrapper>
@@ -137,97 +119,70 @@ type PersonalInfoProps = {
   data: {
     bio: string;
     date_of_birth: string;
+    scores: Score[];
+    links: {
+      f?: SocialData;
+      t?: SocialData;
+      i?: SocialData;
+      y?: SocialData;
+      www?: SocialData;
+      other?: SocialData;
+    };
+    homebase: string;
+    homebase2: string;
+    series: Series[];
   };
 };
 
 const PersonalInfo: FC<PersonalInfoProps> = ({ data }) => {
   return (
     <View style={{ marginTop: 20, gap: 20 }}>
-      <InfoItem inline={true} title={'Visited Regions'}>
-        {regions.map((data) => (
-          <View style={{ display: 'flex', flexDirection: 'column', gap: 5, alignItems: 'center' }}>
-            <Text
-              style={{
-                fontFamily: 'redhat-700',
-                color: Colors.DARK_BLUE,
-                fontSize: getFontSize(14)
-              }}
+      <InfoItem inline={true} title={'RANKING'}>
+        {data.scores?.map((data) => {
+          if (!data.score) return null;
+          return (
+            <View
+              style={{ display: 'flex', flexDirection: 'column', gap: 5, alignItems: 'center' }}
             >
-              {data.count}
-            </Text>
-            <Text style={{ color: 'rgba(62, 100, 113, 1)', fontSize: getFontSize(12) }}>
-              {data.name}
-            </Text>
+              <Text style={[styles.headerText, { flex: 0 }]}>{data.score}</Text>
+              <Text style={[styles.titleText, { flex: 0 }]}>{data.name}</Text>
+            </View>
+          );
+        })}
+      </InfoItem>
+      <InfoItem inline={true} title={'SERIES BADGES'}>
+        {data.series.map((data) => (
+          <View style={{ display: 'flex', flexDirection: 'column', gap: 5, alignItems: 'center' }}>
+            <Image source={{ uri: API_HOST + data.icon_png }} style={{ width: 28, height: 28 }} />
+            <Text style={[styles.headerText, { flex: 0 }]}>{data.score}</Text>
           </View>
         ))}
       </InfoItem>
       <View style={{ display: 'flex', flexDirection: 'row' }}>
-        <Text
-          style={{
-            flex: 1,
-            fontFamily: 'redhat-700',
-            color: Colors.DARK_BLUE,
-            fontSize: getFontSize(14)
-          }}
-        >
-          Date of birth
-        </Text>
-        <Text
-          style={{
-            flex: 1,
-            color: 'rgba(62, 100, 113, 1)',
-            fontWeight: '400',
-            fontSize: getFontSize(14)
-          }}
-        >
-          {data.date_of_birth}
-        </Text>
+        <Text style={styles.headerText}>DATE OF BIRTH</Text>
+        <Text style={styles.titleText}>{new Date(data.date_of_birth).toDateString()}</Text>
       </View>
       <View style={{ display: 'flex', flexDirection: 'row' }}>
-        <Text
-          style={{
-            flex: 1,
-            fontFamily: 'redhat-700',
-            color: Colors.DARK_BLUE,
-            fontSize: getFontSize(14)
-          }}
-        >
-          Region of origin
-        </Text>
-        <Text
-          style={{
-            flex: 1,
-            color: 'rgba(62, 100, 113, 1)',
-            fontWeight: '400',
-            fontSize: getFontSize(14)
-          }}
-        >
-          Greece - Attica, Central and West (Athens, Lamia, Agrinio)
-        </Text>
+        <Text style={styles.headerText}>REGION OF ORIGIN</Text>
+        <Text style={styles.titleText}>{data.homebase}</Text>
       </View>
-      <InfoItem title={'Bio'}>
-        <Text>{data.bio}</Text>
+      {data.homebase2 ? (
+        <View style={{ display: 'flex', flexDirection: 'row' }}>
+          <Text style={styles.headerText}>SECOND REGION</Text>
+          <Text style={styles.titleText}>{data.homebase2}</Text>
+        </View>
+      ) : null}
+      <InfoItem title={'BIO'}>
+        <Text style={[styles.titleText, { flex: 0 }]}>{data.bio}</Text>
       </InfoItem>
-      <InfoItem title={'Social links'}>
-        <View style={{ display: 'flex', flexDirection: 'row', gap: 10 }}>
-          <Image
-            style={{ width: 20, height: 20 }}
-            source={{
-              uri: 'https://upload.wikimedia.org/wikipedia/commons/6/6c/Facebook_Logo_2023.png'
-            }}
-          />
-          <Image
-            style={{ width: 20, height: 20 }}
-            source={{
-              uri: 'https://upload.wikimedia.org/wikipedia/commons/a/a5/Instagram_icon.png'
-            }}
-          />
-          <Image
-            style={{ width: 20, height: 20 }}
-            source={{
-              uri: 'https://w7.pngwing.com/pngs/208/269/png-transparent-youtube-play-button-computer-icons-youtube-youtube-logo-angle-rectangle-logo-thumbnail.png'
-            }}
-          />
+      <InfoItem title={'SOCIAL LINKS'}>
+        <View style={{ display: 'flex', flexDirection: 'row', gap: 15, alignItems: 'center' }}>
+          {data.links.f?.link ? <IconFacebook fill={Colors.DARK_BLUE} /> : null}
+          {data.links.i?.link ? <IconInstagram fill={Colors.DARK_BLUE} /> : null}
+          {data.links.t?.link ? <IconTwitter fill={Colors.DARK_BLUE} /> : null}
+          {data.links.y?.link ? <IconYouTube fill={Colors.DARK_BLUE} /> : null}
+          {data.links.www?.link ? <IconGlobe fill={Colors.DARK_BLUE} /> : null}
+          {data.links.other?.link ? <IconLink fill={Colors.DARK_BLUE} /> : null}
         </View>
       </InfoItem>
     </View>
@@ -240,7 +195,7 @@ const InfoItem: FC<{ title: string; inline?: boolean; children: ReactNode }> = (
   children
 }) => (
   <View>
-    <Text style={styles.headerText}>{title}</Text>
+    <Text style={[styles.headerText, { flex: 0 }]}>{title}</Text>
     <View
       style={{
         display: 'flex',

+ 17 - 0
src/screens/InAppScreens/ProfileScreen/styles.ts

@@ -11,15 +11,32 @@ export const styles = StyleSheet.create({
     gap: 20
   },
   headerText: {
+    flex: 1,
     fontFamily: 'redhat-700',
     color: Colors.DARK_BLUE,
     fontSize: getFontSize(14)
   },
+  titleText: {
+    flex: 1,
+    color: Colors.DARK_BLUE,
+    fontWeight: '600',
+    fontSize: getFontSize(13)
+  },
   countryFlag: {
     width: 20,
     height: 20,
     borderRadius: 20 / 2,
     borderWidth: 0.5,
     borderColor: 'gray'
+  },
+  settingsButton: {
+    width: 40,
+    height: 40,
+    borderRadius: 40 / 2,
+    borderWidth: 1,
+    borderColor: Colors.LIGHT_GRAY,
+    display: 'flex',
+    justifyContent: 'center',
+    alignItems: 'center'
   }
 });