|
@@ -5,6 +5,8 @@ import { NmRegion } from '../../utils/types';
|
|
|
import { Colors } from 'src/theme';
|
|
|
import { styles } from './styles';
|
|
|
import { API_HOST } from 'src/constants';
|
|
|
+import useRegionData from '../../utils/useRegionData';
|
|
|
+import formatNumber from '../../utils/formatNumber';
|
|
|
|
|
|
import MarkIcon from 'assets/icons/mark.svg';
|
|
|
import EditSvg from 'assets/icons/travels-screens/pen-to-square.svg';
|
|
@@ -28,10 +30,17 @@ export const NmRegionItem = React.memo(
|
|
|
) => void;
|
|
|
}) => {
|
|
|
const name = item.region_name.split(/ – | - /);
|
|
|
+ const { regionData, avatars } = useRegionData(item.id);
|
|
|
+
|
|
|
+ const regionImg = regionData ? JSON.parse(regionData?.region_photos)[0] : '';
|
|
|
+ const formattedCount = regionData ? formatNumber(regionData?.visitors_count) : 0;
|
|
|
|
|
|
return (
|
|
|
<View style={styles.regionItem}>
|
|
|
<View style={styles.regionItemHeader}>
|
|
|
+ {regionImg && (
|
|
|
+ <Image source={{ uri: regionImg, cache: 'force-cache' }} style={styles.regionImage} />
|
|
|
+ )}
|
|
|
<View style={{ gap: 6, flex: 1 }}>
|
|
|
<Text style={styles.regionItemName}>{name[0]}</Text>
|
|
|
<Text style={styles.regionItemSubname}>{name[1]}</Text>
|
|
@@ -56,21 +65,33 @@ export const NmRegionItem = React.memo(
|
|
|
{item.visits > 0 && item.year > 1 && (
|
|
|
<View style={styles.infoContent}>
|
|
|
<CalendarSvg height={18} width={18} fill={Colors.DARK_BLUE} />
|
|
|
- <Text style={{ fontWeight: 'bold', fontSize: 13, color: Colors.DARK_BLUE }}>
|
|
|
- {item.year}
|
|
|
- </Text>
|
|
|
+ <Text style={styles.visitedButtonText}>{item.year}</Text>
|
|
|
</View>
|
|
|
)}
|
|
|
|
|
|
{item.visits > 0 && (
|
|
|
<View style={styles.infoContent}>
|
|
|
<RotateSvg fill={Colors.DARK_BLUE} />
|
|
|
- <Text style={{ fontWeight: 'bold', fontSize: 13, color: Colors.DARK_BLUE }}>
|
|
|
+ <Text style={styles.visitedButtonText}>
|
|
|
{item.visits >= 10 ? '10+' : item.visits}
|
|
|
</Text>
|
|
|
</View>
|
|
|
)}
|
|
|
|
|
|
+ {item.visits <= 0 && avatars && (
|
|
|
+ <View style={styles.userContainer}>
|
|
|
+ <View style={styles.userImageContainer}>
|
|
|
+ {avatars &&
|
|
|
+ avatars?.map((avatar, index) => (
|
|
|
+ <Image key={index} source={{ uri: avatar }} style={styles.userImage} />
|
|
|
+ ))}
|
|
|
+ <View style={styles.userCountContainer}>
|
|
|
+ <Text style={styles.userCount}>{formattedCount}</Text>
|
|
|
+ </View>
|
|
|
+ </View>
|
|
|
+ </View>
|
|
|
+ )}
|
|
|
+
|
|
|
<View style={styles.btnContainer}>
|
|
|
{item.visits > 0 ? (
|
|
|
<TouchableOpacity onPress={() => openEditModal(item)} style={styles.editBtn}>
|