import LoadingScreen from '@/components/LoadingScreen'; import api from '@/utils/api'; import { useLocalSearchParams, useRouter } from 'expo-router'; import { StatusBar } from 'expo-status-bar'; import { Building2, ChevronLeft, Paperclip, AlertCircle, FileText } from 'lucide-react-native'; import React, { useEffect, useState } from 'react'; import { ScrollView, Text, TouchableOpacity, View } from 'react-native'; import { SafeAreaView } from 'react-native-safe-area-context'; const InfoRow = ({ label, value, isLast = false, isCode = false }: { label: string; value?: string | number | null; isLast?: boolean; isCode?: boolean }) => ( {label} {value || '-'} ); export default function ConstructionSiteDetailsScreen() { const { id } = useLocalSearchParams(); const router = useRouter(); const [isLoading, setIsLoading] = useState(true); const [siteData, setSiteData] = useState(null); const fetchDetails = async () => { try { const response = await api.get(`/construction-site/get-info?id=${id}`); if (response.data?.success) { setSiteData(response.data.result); } } catch (error) { console.error('Errore nel recupero dei dettagli del cantiere:', error); } finally { setIsLoading(false); } }; useEffect(() => { if (id) { fetchDetails(); } }, [id]); if (isLoading) { return ; } if (!siteData) { return ( Impossibile caricare i dettagli. router.back()} className="mt-4 px-6 py-2 bg-primary-dark rounded-full"> Indietro ); } const { constructionSite, client, subactivities } = siteData; return ( {/* Header */} router.push(`/`)} className="p-2 -ml-2 rounded-full active:bg-white/20 w-12 items-center justify-center" > {constructionSite?.name || 'Dettaglio Cantiere'} router.push(`/construction-site/${id}/documents?name=${encodeURIComponent(constructionSite?.name || '')}`)} className="p-2 -mr-2 rounded-full active:bg-white/20 w-12 items-center justify-center" > {/* Content */} {/* Info Card */} Informazioni {/* Subactivities */} {subactivities && subactivities.length > 0 && ( Sottocommesse {subactivities.map((sub: any, index: number) => { const hasCodes = sub.cig || sub.cup; return ( {sub.code} - {sub.description} {hasCodes && ( {sub.cig && ( CIG {sub.cig} )} {sub.cup && ( CUP {sub.cup} )} )} ); })} )} ); }