import { useLocalSearchParams, useRouter } from 'expo-router'; import React, { useMemo, useState } from 'react'; import { Button, FlatList, Image, StyleSheet, Text, TextInput, View } from 'react-native'; import rawConcerts from '../../data/concerts.json'; type Concert = { group: string; date: string; nationality: string; location: string; price: number; ticketsLeft: number; Image: string; favorite: boolean; }; export default function BonjourScreen() { const router = useRouter(); const { nom, prenom } = useLocalSearchParams(); // Recup data ecran precedent const [search, setSearch] = useState(''); const concertsData: Concert[] = Array.isArray(rawConcerts) ? (rawConcerts as Concert[]) : []; const filteredData = useMemo(() => { if (!Array.isArray(concertsData)) return []; const q = search.trim().toLowerCase(); if (!q) return concertsData; return concertsData.filter( (item) => !!item && (item.group ?? '').toLowerCase().includes(q) ); }, [concertsData, search]); const renderItem = ({ item, index }: { item?: Concert; index: number }) => { if (!item) { // optionnel : afficher un placeholder pour debug // return Item manquant; return null; } return( {item.group} {item.date} {item.location} Prix : {item.price} € Places restantes : {item.ticketsLeft} ); }; return( index.toString()} contentContainerStyle={{ paddingBottom: 40 }} ListHeaderComponent={ Bonjour {prenom} {nom} {/* 🔍 Champ de recherche */} } ListEmptyComponent={ Aucun résultat trouvé 😕 } />