import { FlatList, Text, View } from 'react-native'; import { SafeAreaView } from 'react-native-safe-area-context'; import { useDocuments } from '@/api/ressources'; import { EnteteFiche } from '@/composants/ui'; import { useTokens } from '@/theme/tokens'; const ICONE_TYPE: Record = { NOTICE: '📘', CERTIFICATE: '📜', PHOTO: '🖼', OTHER: '📄', }; function taille(octets: number): string { if (octets < 1024) return `${octets} o`; if (octets < 1024 * 1024) return `${Math.round(octets / 1024)} Ko`; return `${(octets / (1024 * 1024)).toFixed(1)} Mo`; } /** Fichiers — R6.3 (Ressources). Consultation des métadonnées seulement * (D4) : l'ouverture/téléchargement d'un document sur mobile demande un * flux authentifié (l'API le streame, MinIO n'est jamais exposé) suivi * d'un partage natif — nécessite `expo-sharing`, pas encore une dépendance * du projet ; ajoutée dans une prochaine étape plutôt que d'introduire une * nouvelle dépendance native (et donc un nouveau build) dans cette passe. * En attendant : ouvrir depuis le web. */ export default function PageBibliotheque() { const t = useTokens(); const { data: documents } = useDocuments(); const fichiers = [...(documents ?? [])].sort( (a, b) => Date.parse(b.createdAt) - Date.parse(a.createdAt), ); return ( Consultation seulement — l'ouverture se fait depuis le web pour l'instant. d.id} contentContainerStyle={{ gap: 8, paddingBottom: 12 }} ListEmptyComponent={ Aucun document accessible. } renderItem={({ item: d }) => ( {ICONE_TYPE[d.kind] ?? '📄'} {d.fileName} {[d.assetReference && `Asc. ${d.assetReference}`, d.workOrderReference, taille(d.size)] .filter(Boolean) .join(' · ')} )} /> ); }