diff --git a/app/admin/responses/page.tsx b/app/admin/responses/page.tsx index 1c00a64..c42b4d2 100644 --- a/app/admin/responses/page.tsx +++ b/app/admin/responses/page.tsx @@ -137,18 +137,29 @@ export default async function AdminResponsesPage({ const responses = (responsesData ?? []) as unknown as ResponseRow[] - // 3. Contadores totales (independientes del límite de 500 submissions) - const { count: totalSubmissions } = await supabase + // 3. Contadores totales (independientes del límite de 500 submissions), + // filtrados por survey_id cuando hay filtro activo. + let submissionsCountQuery = supabase .from('responses') .select('*', { count: 'exact', head: true }) + if (surveyId) { + submissionsCountQuery = submissionsCountQuery.eq('survey_id', surveyId) + } + + const { count: totalSubmissions } = await submissionsCountQuery + + let answersCountQuery = supabase + .from('answers') + .select('*, responses!inner(survey_id)', { count: 'exact', head: true }) + .in('question_id', allowedIds) + + if (surveyId) { + answersCountQuery = answersCountQuery.eq('responses.survey_id', surveyId) + } + const { count: totalAnswers } = - allowedIds.length > 0 - ? await supabase - .from('answers') - .select('*', { count: 'exact', head: true }) - .in('question_id', allowedIds) - : { count: 0 } + allowedIds.length > 0 ? await answersCountQuery : { count: 0 } // 4. Aplanar: una fila por answer, ordenadas por position dentro de cada submission const rows: DisplayRow[] = []