CAmbio de boton

This commit is contained in:
jalvarado
2025-04-08 18:16:04 -06:00
parent 587bbc4b7c
commit 404dd3a627
4 changed files with 39 additions and 38 deletions
@@ -1,8 +1,10 @@
'use client';
import Button from '@/components/button';
import Input from '@/components/input';
import Table, { Header } from '@/components/table';
import { ParticipacionEvento } from '@/types/participante-evento';
import axiosInstance from '@/utils/api-config';
import { downloadFile } from '@/utils/downloas-utils';
import { useParams } from 'next/navigation';
import React, { useEffect } from 'react';
import toast from 'react-hot-toast';
@@ -116,10 +118,29 @@ export default function Page() {
p.participante.correo.toLowerCase().includes(busquedaCorreo.toLowerCase())
);
const handleDownload = async () => {
try {
const res = await axiosInstance.get(
`/cuestionario-respondido/reporte-respuestas/${id_formulario}`,
{
responseType: 'blob',
}
);
downloadFile(res.data, 'lista_participantes', 'xlsx');
} catch (error) {
toast.error('Error al descargar la lista de participantes');
console.error('Error al descargar la lista de participantes:', error);
}
};
return (
<div>
<h2 className="mb-4">Participantes del formulario #{id_formulario}</h2>
<Button icon="download" onClick={handleDownload} className="mt-2">
Descargar lista
</Button>
{participantes.length > 0 && (
<>
<Input
+17 -13
View File
@@ -44,21 +44,25 @@ export default function Page() {
return (
<>
<div className="cards-1 mt-3">
<div className="cards-1 mt-5">
<div className="container">
<div className="row">
{eventos.map((cuestionario) => (
<FormularioCard
key={cuestionario.id_cuestionario}
cuestionario={cuestionario}
link={`/administrador/formulario/${cuestionario.id_cuestionario}`}
/>
))}
{eventos.length === 0 && (
<p className="text-center text-muted">
No hay formularios disponibles.
</p>
)}
{eventos.map((cuestionario, index) => {
const fadeClass = `delay-${(index % 5) + 1}`;
return (
<div
className={`col-md-4 my-4 fade-in-up-bounce ${fadeClass}`}
key={cuestionario.id_cuestionario}
>
<FormularioCard
cuestionario={cuestionario}
link={`/administrador/formulario/${cuestionario.id_cuestionario}`}
button_message="Registrarse"
/>
</div>
);
})}
</div>
</div>
</div>
@@ -6,7 +6,6 @@ import Table, { Header } from '@/components/table';
import { GetCuestionario } from '@/types/cuestionario';
import { ParticipacionEvento } from '@/types/participante-evento';
import axiosInstance from '@/utils/api-config';
import { downloadFile } from '@/utils/downloas-utils';
import React, { useEffect } from 'react';
import toast from 'react-hot-toast';
@@ -73,9 +72,6 @@ export default function Page() {
Record<number, boolean>
>({});
const [busquedaCorreo, setBusquedaCorreo] = React.useState('');
const [idEventoSeleccionado, setIdEventoSeleccionado] = React.useState<
number | null
>(null);
useEffect(() => {
const getEventos = async () => {
@@ -93,7 +89,6 @@ export default function Page() {
const handleOnSelect = async (idSeleccionado: number) => {
try {
setIdEventoSeleccionado(idSeleccionado);
const { data } = await axiosInstance.get<ParticipacionEvento[]>(
`/participante-evento/evento/${idSeleccionado}`
);
@@ -128,22 +123,6 @@ export default function Page() {
p.participante.correo.toLowerCase().includes(busquedaCorreo.toLowerCase())
);
const handleDownload = async () => {
try {
const res = await axiosInstance.get(
`/cuestionario-respondido/reporte-respuestas/${idEventoSeleccionado}`,
{
responseType: 'blob',
}
);
downloadFile(res.data, 'lista_participantes', 'xlsx');
} catch (error) {
toast.error('Error al descargar la lista de participantes');
console.error('Error al descargar la lista de participantes:', error);
}
};
return (
<div>
<Select
@@ -160,9 +139,6 @@ export default function Page() {
/>
{participantes.length > 0 && (
<>
<Button icon="download" onClick={handleDownload}>
Descargar lista
</Button>
<Input
label="Buscar por correo"
placeholder="ejemplo@correo.com"
+1 -1
View File
@@ -57,7 +57,7 @@ export default function Page() {
return (
<>
<div className="mx-auto my-5 fade-in-down-bounce">
<div className="mx-auto mb-5 mt-3 fade-in-down-bounce">
<ClientCarousel />
</div>
<div className="cards-1 mt-5">