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}
)}
)}
);
})}
)}
);
}