import { router } from 'expo-router'; import { FlatList, Pressable, Text, View } from 'react-native'; import { SafeAreaView } from 'react-native-safe-area-context'; import { useParts } from '@/api/ressources'; import { EnteteFiche } from '@/composants/ui'; import { useTokens } from '@/theme/tokens'; const fmt = new Intl.NumberFormat('fr-FR'); /** Stock — R6.3 (Ressources). Sous-seuil en tête, comme le web (stock.tsx) — * ce qui demande une action passe avant le reste. */ export default function PageStock() { const t = useTokens(); const { data: parts } = useParts(); const pieces = [...(parts ?? [])].sort((a, b) => { if (a.belowThreshold !== b.belowThreshold) return a.belowThreshold ? -1 : 1; return a.designation.localeCompare(b.designation); }); const sousSeuil = pieces.filter((p) => p.belowThreshold).length; return ( {sousSeuil} sous seuil ) : undefined } /> p.id} contentContainerStyle={{ gap: 8, paddingBottom: 12 }} ListEmptyComponent={ Aucune pièce accessible. } renderItem={({ item: p }) => ( router.push(`/stock/${p.id}`)} style={{ backgroundColor: t.surface, borderColor: p.belowThreshold ? t.danger : t.bordure, borderWidth: p.belowThreshold ? 1.5 : 1, borderRadius: 12, padding: 12, gap: 2, }} > {p.designation} {fmt.format(p.stock)} {p.reference} · seuil {fmt.format(p.threshold)} {p.supplierName ? ` · ${p.supplierName}` : ''} )} /> ); }