import React, { useEffect, useState } from 'react'; import { View, Text, Image, TouchableOpacity } from 'react-native'; import { qualityOptions } from '../../utils/constants'; import { RegionAddData } from '../../utils/types'; import { Colors } from 'src/theme'; import { API_HOST } from 'src/constants'; import { styles } from './styles'; import TrashSvg from 'assets/icons/travels-screens/trash-solid.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 = ({ region, onDelete, onToggleStatus, onQualityChange, onHiddenChange, startDate, endDate, isEditing }: { region: RegionAddData; onDelete: () => void; onToggleStatus: () => void; onQualityChange: () => void; onHiddenChange: () => void; startDate: string | null; endDate: string | null; isEditing: boolean; }) => { const name = region.region_name.split(/ – | - /); const qualityName = region.quality ? qualityOptions.find((q) => q.id === region.quality)?.name : 'Good Visit'; const disabled = !startDate || startDate > new Date().toISOString().split('T')[0]; const completed = endDate && endDate <= new Date().toISOString().split('T')[0]; const [isCompleted, setIsCompleted] = useState(false); useEffect(() => { if (isEditing) return; setIsCompleted(completed as boolean); if (completed && region.status === 0) { region.status = 1; } else { region.status = 0; } }, [completed, endDate]); return ( {region.flag2 && ( )} {name[0]} {name[1]} Quality of visit {qualityName} { onToggleStatus(); setIsCompleted(false); }} disabled={disabled} > {(isCompleted || (region.status === 1 && !disabled)) && ( )} Completed {region.can_be_hidden && ( {region.hidden && ( )} Hidden )} ); }; export default RegionItem;