Files
formularios_front/src/components/formulario-card.tsx
T
jalvarado 587bbc4b7c styles
2025-04-08 10:45:31 -06:00

79 lines
2.2 KiB
TypeScript

'use client';
import Link from 'next/link';
import { GetCuestionario } from '@/types/cuestionario';
import React, { useState } from 'react';
import Image from 'next/image';
import Button from './button';
import { useRouter } from 'next/navigation';
interface Props {
cuestionario: GetCuestionario;
link: string;
button_message?: string;
}
export default function FormularioCard({
cuestionario,
link,
button_message,
}: Props) {
const router = useRouter();
const [verMas, setVerMas] = useState(false);
const descripcion = cuestionario.descripcion;
const limite = 100;
const descripcionRecortada =
descripcion.length > limite && !verMas
? `${descripcion.slice(0, limite)}...`
: descripcion;
return (
<div className="card card-blog d-flex flex-column justify-content-between">
<div>
<div className="card-image scale-hover-1">
<Link href={link}>
<Image
width={400}
height={300}
className="img"
src="/feriasex.jpg"
alt="Banner formulario"
/>
<div className="card-caption">{cuestionario.nombre_form}</div>
</Link>
<div className="ripple-cont"></div>
</div>
<div className="table px-3 pt-3 mb-0">
<h6 className="category text-info">
{cuestionario.id_tipo_cuestionario === 1 ? 'Feria' : 'Evento'}
</h6>
<p className="card-description mb-0">
{descripcionRecortada}
{descripcion.length > limite && (
<button
onClick={() => setVerMas(!verMas)}
className="btn btn-link btn-sm p-0 ms-1 align-baseline"
style={{ fontSize: '0.875rem' }}
>
{verMas ? 'Ver menos' : 'Ver más'}
</button>
)}
</p>
{button_message && (
<Button
onClick={() => router.push(link)}
outline
className="mt-3 w-100 py-1 rounded"
variant="azul"
>
{button_message}
</Button>
)}
</div>
</div>
</div>
);
}