Pages
Eventos
index.tsx

index.tsx

En esta pagina lo que se tiene es una simple visualización de los eventos que se han creado.

Se mandan a llamar los eventos de la base de datos

Especificamente se manda a llamar lo que serían los datos de la tabla "events_users". La cual contiene el id del evento y el id de la persona quien lo creo. Pero podemos acceder a los datos del evento de la siguiente manera que se presenta después en el getServerSideProps.

El cual lo que dice es: "De la foreignKey que tienes relación, me va a dar los datos de esta"

select(idevent(*))

Codigo del getServerSideProps

export async function getServerSideProps() {
  const { data: eventos, error } = await supabase
    .from("events_users")
    .select("*, idevent(*), iduser");
  if (error) {
    throw new Error(error.message);
  }
  console.log(eventos);
 
  console.log(eventos);
  return {
    props: {
      eventos,
    },
  };
}

Ya una vez que traigamos los eventos al componente que se va a renderizar, lo que vamos a hacer es una comparación sencilla.

La cual lo que hace es checar que existan eventos en los props del componente:

export default function Eventos({ eventos }: any)

Esta condición se checa lo que sería si existen eventos en el array que devuelve checando la longitud del array. Si es que se cumple la siguiente condición, va a devolver los eventos. Si no hay entonces va a devolver un cartel que diga que no hay eventos.

{eventos.length > 0 ? ( Mapeamos los eventos y los devolvemos ) : ( Se devuelve un cartel donde dice que no hay eventos )}

Si es que existen eventos, lo que va a retornar va a ser un componente que diga los detalles del evento y tenga un botón para ir al evento y checar con más detalle. Este botón lo que toma es el id del evento y asi lo lleva como prop de la siguiente manera cuando se usa el router para ir a otra ruta.

let router =  useRouter();
...
...
onClick={()=>router.replace(`${/eventos/idevent}`)}
Last updated on December 15, 2022