import React from 'react'; import { View, Text, TouchableOpacity, Image } from 'react-native'; 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'; import CalendarSvg from 'assets/icons/travels-screens/calendar.svg'; import RotateSvg from 'assets/icons/travels-screens/rotate.svg'; export const NmRegionItem = React.memo( ({ item, openEditModal, updateNM, token }: { item: NmRegion; openEditModal: (item: NmRegion) => void; updateNM: ( region: number, first: number, last: number, visits: number, quality: number ) => void; token: string; }) => { const [name, ...rest] = item.region_name?.split(/ – | - /); const subname = rest?.join(' - '); const { regionData, avatars } = useRegionData(item.id); const regionImg = regionData ? JSON.parse(regionData?.region_photos)[0] : ''; const formattedCount = regionData ? formatNumber(regionData?.visitors_count) : 0; return ( {regionImg && ( )} {name} {subname} {item.flag_2 && ( )} {item.visits > 0 && item.year > 1 && token && ( {item.year} )} {item.visits > 0 && token && ( {item.visits >= 10 ? '10+' : item.visits} )} {(item.visits <= 0 || !token) && avatars && ( {avatars && avatars?.map((avatar, index) => ( ))} {formattedCount} )} {token && ( {item.visits > 0 ? ( openEditModal(item)} style={styles.editBtn}> ) : null} 0 ? styles.visitedButton : styles.markVisitedButton ]} onPress={() => updateNM( item.id, item.visits > 0 ? 0 : 1, item.visits > 0 ? 0 : 1, item.visits > 0 ? 0 : 1, 3 ) } > {item.visits > 0 ? ( Visited ) : ( Mark visited )} )} ); } );