Compare commits

...

2 Commits

Author SHA1 Message Date
52175cdeab Fix filtres instruments
All checks were successful
Build and Push Docker Images / Build Backend Image (push) Successful in 50s
Build and Push Docker Images / Build Frontend Image (push) Successful in 6m43s
2026-01-27 23:35:41 +01:00
d2570b9228 Modif limite 10000 résultats 2026-01-27 23:33:49 +01:00
2 changed files with 17 additions and 4 deletions

View File

@@ -64,8 +64,8 @@ export default function Home() {
queryKey: ['tracks', filters, page, sortBy, searchQuery], queryKey: ['tracks', filters, page, sortBy, searchQuery],
queryFn: () => getTracks({ queryFn: () => getTracks({
...filters, ...filters,
skip: page * limit, skip: searchQuery ? 0 : page * limit, // Reset skip when searching
limit: searchQuery ? 10000 : limit, // Load more for search to work across all results limit: searchQuery ? 500 : limit, // Load max 500 for search
sort_by: sortBy sort_by: sortBy
}), }),
}) })
@@ -377,7 +377,7 @@ export default function Home() {
</div> </div>
{/* Pagination */} {/* Pagination */}
{totalPages > 1 && ( {!searchQuery && totalPages > 1 && (
<div className="mt-8 flex items-center justify-between"> <div className="mt-8 flex items-center justify-between">
<button <button
onClick={() => setPage(p => Math.max(0, p - 1))} onClick={() => setPage(p => Math.max(0, p - 1))}
@@ -402,6 +402,14 @@ export default function Home() {
</button> </button>
</div> </div>
)} )}
{/* Search results count */}
{searchQuery && (
<div className="mt-4 text-center text-sm text-slate-600">
{filteredTracks.length} résultat{filteredTracks.length > 1 ? 's' : ''} trouvé{filteredTracks.length > 1 ? 's' : ''}
{tracksData && tracksData.tracks.length >= 500 && ' (recherche limitée aux 500 premiers résultats)'}
</div>
)}
</> </>
)} )}
</div> </div>

View File

@@ -60,7 +60,12 @@ function getApiClient() {
// Tracks // Tracks
export async function getTracks(params: FilterParams & { skip?: number; limit?: number }): Promise<TracksResponse> { export async function getTracks(params: FilterParams & { skip?: number; limit?: number }): Promise<TracksResponse> {
const response = await getApiClient().get('/api/tracks', { params }) const response = await getApiClient().get('/api/tracks', {
params,
paramsSerializer: {
indexes: null, // Use instruments=value1&instruments=value2 instead of instruments[0]=value1
}
})
return response.data return response.data
} }