+ {/* Top bar */}
+
+
+
Market Events
+
+
+
+
+ {/* Search */}
+
+
+ setSearch(e.target.value)}
+ placeholder="Recherche..."
+ className="w-full bg-slate-800/60 border border-slate-700/50 rounded-lg pl-8 pr-3 py-1.5 text-sm text-slate-200 placeholder:text-slate-600" />
+
+
+ {/* Quick filter chips */}
+
+ {CATEGORIES.map(c => (
+
+ ))}
+
+
+
+ {/* Extended filters */}
+ {showFilters && (
+
+
+
Niveau
+
+
+
+
Évaluación
+
+
+
+
Date depuis
+
setDateFrom(e.target.value)}
+ className="w-full bg-dark-900 border border-slate-700 rounded px-2 py-1 text-slate-300 text-xs" />
+
+
+
Date jusqu'à
+
setDateTo(e.target.value)}
+ className="w-full bg-dark-900 border border-slate-700 rounded px-2 py-1 text-slate-300 text-xs" />
+
+
+
Score min: {minScore.toFixed(2)}
+
setMinScore(+e.target.value)}
+ className="w-full accent-slate-400" />
+
+
+ )}
+
+
+ {/* Bulk actions */}
+ {unevaluatedIds.length > 0 && (
+
+
+
+ {unevaluatedIds.length} non évalués
+
+ {bulkMsg && {bulkMsg}}
+
+
+ )}
+
+ {/* Count */}
+
+ {total} événement{total !== 1 ? 's' : ''}
+ {(category || level || search || minScore > 0 || evaluated || dateFrom || dateTo) && ' (filtré)'}
+
+
+ {/* List */}
+
+ {loading && events.length === 0 ? (
+
+ Chargement...
+
+ ) : events.length === 0 ? (
+
Aucun événement trouvé
+ ) : (
+ events.map(ev => (
+
setSelected(ev)}
+ />
+ ))
+ )}
+
+